Tag Archives: Astrum Futura

Web Application Installer/Upgrader

I’ve been contemplating this problem. I think the system should support three methods rated based on the preferred methods.

  1. SVN (version control, preferred method)
  2. PEAR
  3. HTTP

I would prefer Subversion (VC)

This should be the preferred since the version control already has a system in place for downloading, updating (upgrading), and merging based on what changes someone has done. It would only need to get the URL to the subversion and have the location of the Subversion application or by checking if the Subversion extension for PHP is installed.

This wouldn’t require that the installer move the old files to another folder and can assume that subversion can clean up any changes. There might be problems when conflicts occur, but I think for the majority of people that would used this method wouldn’t have problems if they left their files alone.

I think this will be possible without too much trouble. First search for the SVN extension and use it, else search for the SVN application.

If neither exist, then go to the next method.

PEAR

PEAR is an awesome method of installing an application. If I can create a PEAR channel and use that to install WordPress, I can also use it to upgrade WordPress, when it needs to be. This could will need further checking. It needs access to PEAR, either the command line, or PHP extension.

This would most likely require moving any changed files over to a new folder and allow the person to copy over what they changed. I don’t know how PEAR handles these situations, but it is better to be safe than sorry in this type of situation.

If neither exists, then go to the next method.

HTTP

Not the best method as it would require moving existing files in the event that some might have been changed. The other problem is that like the above, it would require that the four methods work of GETting a file work. If any of them fail, then the installer would be broken and have no other fall back.

If None of them Works

However, I do think that for most people at least one of the methods above would work for most people. Those that it doesn’t work for, would have to use the age old FTP method or try to find someone that will do it for them.

It has to just work

This means that for most people it has to just go out there and try to find the most common places where Subversion and PEAR exist, if they are installed. It should also try to use multiple methods of getting a file by URL. It should allow for configuring the locations and methods used instead. An “auto” method for novices or people who just want it to work and a “manual” method for more experienced users or for people who want more control.

If it works out, I will apply it to installing Astrum Futura.

Possibly Related Posts:


Releasing Early, Release Often: Astrum Futura Installer

Well, I don’t know about the releasing often part, but I do have some thoughts on releasing early. The reason to do both has several reasons, but I’m more focused on bug reporting and feature feedback.

It is one reason why I’ve focused on developing the AI parts for the Quantum Game Library. To allow other developers to use the components to make the game features “smarter” and to stabilize the AI components faster. It is also why I’m focusing on the Astrum Futura Installer so early in the development cycle.

Normally, the installer parts will be developed towards the end, usually during the beta stages or late alpha stage. There are really good reasons for doing this. One of them being that the development cycle in the alpha stage is unstable and often changes. You don’t want to develop something that you’ll have to redo after each change as it will slow the development down.

As for that, the Database Abstraction has a Scheme feature, which allows for drawing in a simple XML document which maps to a database table and can also insert rows. Using a stable library for that allows a single point of entry into the web application. The installer doesn’t have to concern itself with whole application, just the Scheme to install the tables that the game will use.

There will still be web application dependent, such as configuration variables. It is in my opinion that it takes more time to redo the database table structure than to tweak a variable here and there and build the config.php (or config.xml or config.xxx). The Zend Framework, or really any framework or library that allows parsing multiple types such as xml, ini, php array, make it extremely easy and quick work to handle this part. The web application itself would just have to either pull the right configuration from the framework and use it. It shouldn’t be anything to update the installer to modify an variable name and set of values or add/remove a variable.

That just leaves to the way the Installer functions. Which is why I think it is important to have it out as soon as possible.

The installer I’m making for Astrum Futura has an high probably that it won’t be released with the final product. It might baring time and development constraints. I think it is important to get valuable feedback from the users early and fix any bugs in the Installer library that will eventually show up as soon as possible. That way, the installer has seen just as many eyes and had as many development hands on it as the game had.

Will this also include an “upgrader”? No, it won’t. I’m thinking of a way to include it, but it is my opinion that the upgrader should be customized for each version for mapping table field names to the new field name and moving the data between the two. The pieces may be there, but until the development reaches beta and stable, I don’t think developers should place time into making the upgrader work.

That doesn’t mean that there won’t be upgrades from one version to another. It will for testing the upgrade process only, instead of user convenience. Blowing everything away and starting anew will save a huge amount of time during the install process anyway.

Possibly Related Posts:


Agenda for April

Fixes for Dijkstra algorithm and starting A* algorithm

Well, the boundary problem has been fixed, but now the algorithm is broken and it should take some time to fix that part. I figure that while I’m doing that, I can start on the A* algorithm and try to complete that piece also. It should take a few days to complete both of them. I’ll have to rewrite parts of the Dijkstra algorithm and apply those to the A* algorithm.

Astrum Futura

I’ll want to work on the installer and get more parts completed for this. I think I’ll work on it in between other parts of the code. Really, I need to do some more research on how others do this before the product is released. I wanted to had gotten to it in mid-March, but never got around to it. I am in the game for this month and already started, which is a good thing. The Quantum Game Library is a good motivator.

The other parts for Astrum Futura will be other small enhancements and shouldn’t take more than a week. That is, if kept to a schedule and I do plan to, after I get worked up to one.

Computer Upgrading

It really depends on how much I can spend on computer parts. I might use credit for paying for the components, but I want to try to use cash. I already have plans to buy RAM sticks, either two or three depending on how much I can afford to spend. This would either put me at 3GB of total RAM or 4GB of total RAM. Depending also, I do want to look at buying Hard Drives instead. 400GB Hard Drives are closer to $100, so two would be $200, which would be around the same price as 3 1GB RAM sticks. Really, I have to decide whether I want to install windows and move files from my other drives or if I want to have 3GB of RAM.

If all else fails, I’ll just wait until May and buy both components. Not such a big deal, but the sooner I buy the drives, the sooner I can test my other drives to make sure they are really “broken” and it wasn’t just my motherboard acting up. I’m glad I kept all of my hard drives after all. The mirrored configuration should be interesting however.

Probably decide when I get my check and see how much I can spend. The RAM however won’t do me any good until I get Vista and the TV Tuner, so most likely the Hard Drives, unless I can’t afford it, then I’ll just buy the RAM after all.

Possibly Related Posts:


Astrum Futura: March Coding Madness

As such, my coding focus is going to shift more to Astrum Futura for the next few months. There has been a lot of progress with the Quantum Game Library and more is likely to follow. There are just some features that I can implement now for Astrum Futura that I would like to start or finish.

The roadmap of features can be found in previous posts, but I will be starting within the next few weeks. Mostly, I completed the major homework project that has been stressing me out for the past two months. I’m pretty much caught up with homework or can do so in short time. I’ll take time to finish up what is left of any homework for one class to get completely caught up. Will do that before I start in to any coding for Astrum Futura, which is why I stated I will start within the next two weeks.

That said, it will be nice to be programming again. The break has actually been refreshing, but I like coding and I think my mind and body is ready to do it again. I am researching over areas for programming and may do some of that if time permits. Astrum Futura won’t be the only project that I invest time in, but the other projects will mostly be research and testing oriented, so I won’t devote that much time into them until the Summer.

The timeline for my features for Astrum Futura should all be completed before the end of May. I would like to have them done before April is over. Given how much time I’m going to have per week, that most likely won’t be possible. I am going to devote my total time on just the Astrum Futura project until either my features are complete or the Summer comes.

There are still some components that I have planned for the Quantum Game Library. I’m going to push those components till later.

Possibly Related Posts:


QGL and Astrum Futura Tracker Coming

I’ve been waiting for this for some time, as I’ll get an idea but not have it detailed enough to post to the forums. It has also been needed for the past suggestions and for future suggestions. The forums are great for discussion as tracker comments are just like blog comments, which are difficult to follow and see if there is a new comment on.

As a whole, I would like to add some of my own, but spending a week or so going through the old discussions might be fun! Some of the new people (Tirellco and Cyberlot) had some great comments that would be worth tracking. That said, there also has to be a formal written proposal to go along with the feature ticket, unless dependency ticket tracking is a feature of the tracker.

The ticket would have a summary and have a link to the wiki page with the full proposal which had thus far been agreed on or discussed to conclusion. It would be nice to have some sort of roadmap for which to show people (and myself) with both QGL and Astrum Futura.

I should Admit That…

I do create tickets for the sake of saying that I’ve completed that task and record that I completed that task. That might not always be the best method when you are working with other people and probably will have a lot more users submitting tickets for defects or features.

So, that is why most of the ticket proposal would be at the wiki and just have a summary at the tracker. If needed and the task is something important and would take more than several hours, it might also be good to mark that ticket in the wiki and as an dependency in the comments (or use the feature if supported).

The Fun Stuff

Mostly, it would be worth going through the old discussions and sort of “close” them and redirect to the tracker and wiki. The discussions wouldn’t be closed, as in forum moderation speak, but really to head it off into a new direction based on what is in the wiki and tracker.

Not quite sure if the update should be posted to a single sticky thread or to each individual thread.

Possibly Related Posts:


Imperfect Implementations

AI

I just want to iterate that the AI in the Quantum Game Library is mainly experimental and won’t be perfect. I’ve been fascinated with AI since 2004 when I developed Mecha Asylum and tried to implement a genetic algorithm, which failed miserably, in 2005. I don’t think it is a bad thing as long as it works. Has many concepts been developed that were perfect the first time? I doubt it.

The goal isn’t to have a perfect version the first time, but only to have it working. Yes, it will mean rewrites later, but I’ll be happy with that because it would mean that I’ve learned more and gained enough experience and understanding.

I’m also hoping some brighter, more intelligent, and experienced AI developer would come along. “Build it and they will come,” they say, well I’m not quite sure about that. If it does happen then I’ll be happy with the work I’ve done and the skill sets I’ll learn from the (probable) future master.

However, I do have a second goal, which is to open the possibilities of AI to other closed and open sourced PHP game developers on using AI in their games. The QGL components are GPL, so any closed source game would need to develop their own AI library.

I have big plans with the AI components I’ll be developing and I think it will take most of the time. The more I read, the more I learn of ideas that could easily (and sometimes not so easily) be implemented to make the game seem more intelligent. Whether intelligent translates to fun is another issue that would need to be addressed.

Astrum Futura

Autonomous agents (bots) will not be part of the core of Astrum Futura. Reasons being that it would take too much processing and would not be all that great for share-hosted users. This does not mean that the option will not be available, because it will eventually be a plugin. It is that the concept of Astrum Futura is of Human interaction.

It is nice that the concept of plugins and mods almost completely devoid any hurt feelings. Any AI technique would have to be debated as to whether it would be in the core or a mod. I’m guessing that a lot of the AI functionality will be in mods, but that is fine since it will allow for fine tuning.

Which is another part of the imperfect design that I’m constantly trying to ponder. How perfectly can I implement the concept of modifications in the Astrum Futura? Not very. I don’t feel that bad however, since well, after I get it working, I’ll have the prototypes from phpBB, S9Y, WordPress, and countless other implementations to research.

Again, the goal is to implement it, test it and then develop better versions. Will it be as good as WordPress or phpBB? No, of course not, those applications have been in development for years. The idea however is to learn from those applications and try to implement something that doesn’t completely cause the user disgust. The mod system should be quite impressive and I mean to make it so.

Back to AI in Astrum Futura, it is interesting I think. My goal is to try to implement as much as I can in the core (Fuzzy Logic, Finite State Machines, behavioral patterns, Path finding) and allow further development to take place (luckily that there is QGL!). I’m most likely going to have a lot of AI based mods for which developers will be able to install.

Switching the AI topic back to the Library, I should note that some first versions might not make everything possible. What I mean by that is that I’ll be vastly inexperienced in how to implement some of the AI classes in such a way that would be usable in every situation. It is good however to be able to test how well such classes work within Astrum Futura and, in the future, the rest of the Absidon games.

The concept of learning, which I’m loving the idea of more and more, would not be something that could be a mod in some cases. The reasons is that one mod for one type of game wouldn’t be applicable to another game. There will be a mod for Astrum Futura, but it wouldn’t be compatible with a RPG game or any other game that isn’t a clone of Astrum Futura. A new mod would have to be created for that game model to simulate learning. I do want to make it as easy as possible on the front end, but the back end would be where all the work would take place.

To reiterate, don’t expect it to be perfect, but do expect it to work!

Also, thank goodness that I’m not the lone developer because I’ve never would have gotten as far as I have.

Possibly Related Posts:


Astrum Futura Update

It seems development on Astrum Futura has kicked off again as the lead developer fixes defects bought by the Zend Framework. My commitment on Astrum Futura will have to wait until I’m finished with my commitment to the path finding classes. I still have unfinished work on the Installer and News feature that I want to get back to. If I started work on the Astrum Futura game engine, I’ll probably won’t get back to the Quantum Game Library for some time.

I quite like it in the confides of the Quantum Game Library. It is fun with the unit tests and the coding and the revising the API to where it is bigger and better than before. All good things must come to an end and I should be working on the game along side the lead developers to finish it in a timely manner. I’ll be more interested in development when the Map features are finished and usable. The installer should also be somewhat of a help for testing purposes leading up to the final release.

So to paraphrase:

  1. Finish Path Finding algorithms.
  2. Work on Installer and finish it.
  3. Finish the News feature.
  4. Start Admin Panel.

Forum has been dead, except for a few spurts here and there. It has to be with the holiday, but the initial interest phase might have faded. It is hard to keep an audience when there is hardly anything to show. Anything and everything is possible at this point, but it won’t be for sure until development starts to pick up on the main game features that true feedback will start flowing in.

If the user is able to test the game out, then they’ll be more likely to give feedback. Not for sure, but it is something I would do. I think that the Installer will help with that, but the Installer will hardly be maintained after the initial phase and it falling behind will likely mean that it will often break. I’ll be sure it works for public releases, but beyond that, it is anyones guess.

Pathfinding Update

I’m about to commit a major update to the Path finding AI component. It should almost complete the Dijkstra component, which will help with the A* component. Besides testing, which might hamper my spirits if said update doesn’t help, but it is going in the right direction.

It also means that I won’t be far behind on working on the Astrum Futura game engine again.

Possibly Related Posts:


Chaos Region: an Absidon RPG

Chaos Region is just the code name, it won’t do any good to register the domain name in hopes that I’ll pay out the ass later.

What it is

I have material for a story based RPG for quite some time and this project should help expand on the ideas I’ve had so far. The original intention was to make this a book, but I figure it would make an excellent game (if done right) also. My notes has quite a few areas where I can place the player in. I think I’ll be creating multiple game “servers” for different time lines.

The game will depend on the Astrum Futura game engine, but I don’t have any plans to start this anytime before the Mecha Asylum, Heat of the Race, and Battle Machines projects are finished. The reason for this is by the time those games are finished, I would have gained the skills required to complete this project in the best matter possible. So I don’t see it started before any time in 2008. It is however one of the final projects I’ll have before I just continue improving the current games.

Battle System

The battle system has already been planned and thought out. There will be warrior based and mage based classes for which the player can choose. However, It will depend on what attacks the player chooses. If they battle more with weapons, they will have more attack based skills available on level up. If they attack more with spells, then more spells will be made available.

In this way, there will be five (5) Magic Orders and three -mancy classes. There will be restrictions on what the player can join, so the choice has to be made carefully. A player can join only one Magic Order and can join either Geomancy or Necromancy classes. If a player joins Neomancy, then the player can’t join any of the Magic Orders and vise versa.

Each of the Magic Orders and -mancy classes will have strengths and weaknesses, as well as unique spell sets. Some Magic Orders are predisposed to attacking other Magic Orders and others are either neutral or have an mutual understanding of the other Order.

Player and NPC Interaction

I want the player to interact with other players, join guilds and clans, attack, or temporary ally for missions, and so on. I also want the player to interact with NPCs to get missions, get mission items, and other stuff found in 2D based RPGs. Whether or not there will be movement in the map is still undecided, I’ll have to be sure I have that knowledge and prototype (in Astrum Futura) beforehand.

Castle Building

I think this would be interesting, but I doubt it will be part of the game. I want the focus to be on story and missions, but this would be a good feature to have for clans who want to build some place they can store their gold and weapons or trade them. It could also provide protection against enemies (or allow spies to enter and rob them), since it will be located out in the wilderness.

Mission and Story Based

The hardest part is keeping to the timeline of the players’ actions. It shouldn’t be too difficult since the missions would allow me to know what should have happened before hand. However it is more towards the individual player timeline. If the player completed a mission in the previous timeline then it would be referenced in the future one.

Some of the timelines will be mostly war based, the Magic Orders battling the other Magic Orders. Wars against Necromancy and the Magic Orders. It also includes wars of the Magic Orders against Neomancy. The battles will be recorded and kept for future reference in later timelines. The history will depend on the players, which should make the game somewhat different.

Possibly Related Posts:


Astrum Futura: Installer

Development has started on the Installer for Astrum Futura. It should be noted however that the installer won’t be finished until the game is. It is just something to help me get the game working without to much manual modifications. It won’t remove all manual work and will most likely fall behind on future development, but starting it now should at least push the release forward.

I was able to get a WAMP installation working with XDebug and some other helpful extensions. I work visually, so it should help with any future development I do for the Astrum Futura game. It is also help getting to know the Astrum Futura core and the Quantum Game Library components, besides the components I’m working on.

Other Game Components

I’m planning on working on other game features/components over the next few months. It is nice to not have the weight of an entire game engine project. It leaves me time to do other features that are useful in any applications and work on them for Astrum Futura. I doubt I’ll be the only one working them after I start them, but finishing most of work allows others to see where I’m heading and help out.

Modification System

The game needs to be more developed before I can start this. The admin system at least needs to be workable and able to add new components to it.

Modifications shouldn’t modify to much the core system. All game features should allow plugins to hook into and modify or filter its system. New unofficial feature Mods not part of the core don’t have to follow this system, but would help. Unofficial mods that add new features have to have some way to add their functionality, either to the menu so they follow this convention.

The ability to add plugins will depend on the coders who created the code for it. A plugin system would have to be created for each game component for which a mod can be created. If a game component doesn’t have a plugin system then no mod can be made for it that wouldn’t need to be committed to the trunk of the game system.

News Feature

This feature will allow the admin to post changes to the game and receive comments on the news item. It is going to be part of the core and something that games have. I’m thinking of doing things a little bit differently for this feature.

In the old news feature, you only had a SQL based system. I would like to add an RSS feed enhancement to the news feature, which also tracks the comment feed. In this way, the news won’t be bound by the SQL and could get content from outside sources.

The reason for this is that there are better packages out there for handling News Feeds and I don’t want this to just be another blog source. Most developers will get better admin features from other packages that should be located elsewhere. Duplicating those features will have to be made in some parts to make the news feature work. However, it won’t be WordPress or S9Y, and it would still be advised that the admin use those sources.

Help/Faq System

I was thinking about including this feature, but I think wikis and other sources would be better for the user to use. The primary focus should be the game and its development. Even the news feature is kind of outside the scope of the project. As good as media wiki is for setting up help systems and faq packages are for their content, it would be better to use them instead.

Some would question not integrating the systems, but I really don’t think they have used Wikis before. The idea behind Astrum Futura is to reuse old libraries and sources. Recreating the wheel takes away time and resources for better features that could instead be added, like AI development.

Possibly Related Posts: