This week I’ve actually done a lot of work without noticing it. First of all I needed an environment in which I could write and directly test code without being dependent on a webhost. The easiest way to do this is by installing Apache2Triad. It’s easy to install and it works directly on. The control panel offers enough functionality to make it do what you want (that is to parse PHP files and to interact with a database).
After that I’ve tested some files which I already had and which could be reused. As I’ve edited them, some mistakes had to be corrected. After doing that (I hate code which is not compiling), I’ve written the first two use-cases:
- Register user
- Log in user
“So that’s all you’ll probably think? It ain’t that hard to construct a user registering system and a login prompt!”
That’s true, but remember that this is the start of the design. So it’s advisable to overthink twice what you actually are doing and how you are going to fit this into the ‘big picture’. Of course it’s easy to make a couple of files which do an interaction with a database, save the user into it and after that do authentication via a login script. Hold that thought until the next section..
As I was wandering around passing several ‘online text-based mafia games’, it catched my attention that several things were almost always the same, like:
- Options as described on the homepage
Most ranks were originally introduced by the popular Omerta / Barafranca game and are copied by a lot of wanna-be games. Of course it’s hard to deny typical mafia ranks like Associates and Caporegimes, but there are also some ranks which could be different. I think that it’s important for a game to create an own identity in any way possible. Next to that most options seem to be the same. As if they all use the same script. It’s all about stealing cars, doing crimes and killing. Duh! Of course these are the main options. These can’t be denied, but what about bribing?
Concluding my small tour on the internet I think a lot of these websites are runned by people who bought scripts that were not that innovative and now these sites lack of active users (they lack an active community). So creating a game by using your own inspiration is a must and this is exactly what I want. Actually I don’t know if it will ever finish, or will every be used, and if so: will it be used by me? Perhaps I will sell it if there are potential buyers. Anyway: what we absolutely DON’T want is another game doing the same as the rest. We want a game which is able to create its own identity so that it’s interesting for potential users and still will be when they are registered. Playing it has to be a challenge. Not a one out of a dozen clicking things to do when someone’s bored.
And now back to the thoughts: how do we create a game which is interesting, yet simple to play, with aspects which triggers brain activity? And how can we quickly adapt to users’ opinions to extend or improve future versions of the game? If you have an idea about this, THEN actually start building your first pages. A plan is the very first piece of a project. No plan means failure in 99% of the cases. In my project, I’ve chosen to use the Smarty template engine to separate code from HTML and to allow for some caching done by Smarty itself.
Once I’ve started the first scripts I encountered the first problem: I want the game to be free, but I would also like to allow room for donations so the servers, power and maintenance can be financed. For these donators, I would like some extra’s to thank them for donating without explicitly giving them advantages. Things like VIP menu’s are most of the time great features: some relevant data which is normally not visible in every screen, but can be of importance can be shown in every screen. But this should be updated about every minute (in case of showing things like cash and bank money in such a menu). From a caching and server load point of view we don’t want to completely reload the page every minute. Instead of that we just want to reload the menu. But how to do this?
Normally spoken it’s better to use boxes instead of frames, but in this case frames have the advantage that we can reload the page in a certain frame. So frames is the way to go then. When using Smarty in a clever way, you can create some templates and use these in every frame, thus reducing the script sizes, the amount of files and saving server space.
Next thing will be the database schema and game concepts..