I started working on a (2d) game maker again after a very very long pause. unlike making a game where you create images, possibly create a story line, create a nice gui, and very specific game mechanics. Ideally the game will be developed on a web browser, then uploaded to a blockchain in parts. I also intend to use it elsewhere possibly off chain. But that is a long time from now. The basic editor isn't complete yet, haven't started the process of saving to webstorage yet, nor the process of compiling the saved data, nor has the basic player interface technically been started yet.
Developing a game maker means you really don't have to care about what images you make, you don't need a story line-and initially you don't need a fancy gui. All you really care about is collecting and organizing data, and just about every game mechanic a developer would want.
Now it's not to say that creating a game is easy. Even Final fantasy created 35 years ago used some 937 sprites-many of them animated; just to demonstrate how tedious it is. http://www.videogamesprites.net/ . To be fair, many of them are the same thing just with different color schemes; here are 18 basic sprites that was transformed into 108. http://www.videogamesprites.net/FinalFantasy1/NPCs/Townsfolk/Men.html . The NES color pallete was kind of limited, so at least that limited debate about color schemes. OMG, everyone's white; Cancel japan.
Creating a story line isn't too bad. Super mario bros was trying to save princess toad stool, only to save a shroom instead until the 8th world. But certainly there are game with more complexity such as role playing games.
And that is the direction I am going with at the moment. Later I want to include standard and ccg card games and board layouts, but that isn't my focus. a ccg mechanically is about the same as an rpg, just less so.
When I resumed the project I figured I had a total of 23 main categories of things [modules] to work on [excluding board games] on the editor. I've added 4 more, and temporarily commented out one as obsolete and considering a second. I keep adjusting the organizational structure particularly when I see it is premature to finish it . Eventually I'll put all the modules in menus.
As I get to closer to completing more modules, I have to go back and make sure that the higher level modules can access the required data. More than that, I also had to let go of my idea of what an standard rpg would look like as to allow the level of customization I wanted users to have so new modules became necessary to avoid, believe it or not, a more sloppy experience. In many cases I chose to seed the new modules with examples of what one might expect in games as to leave direction, and since realized it helps solved other organizational issues too; A status type effect doesn't have to be the familiar rpg "poison","sleep", stun", but it could be [mario] "jumping", "standing","running", "climbing", "dying", or just "1","2","3". Those optionally"descriptive states will be seen in class refined module [eventually], and a skin set can be assigned to each.
It's kind of like a rollercoaster. The more you advance, the more you have to step back. The more you look at the categories of what is about done except for [gui enhancements and] y, and keep moving ahead the more you keep having to ask what is the best way to implement this. More so because it is moving away from object dependencies, and more towards what are the event triggers and how to carry out the events....without letting a malicious developer introduce their own code. for equipable items, sure it is fine to assign say a minimum strength requirement. But at the present moment the act of talking to a character relies mostly on game progress[event] completions; What is the best way to have an npc give a custom message if you reached a certain stat level. Should the test be at the npc level and possibly create a conflict with the game event decision model, Should an npc be given a trait to use an alternative decision model, should a message box appear letting the gamer decide which message [which also means giving a title to each message] , should there be game event id locations dedicated to player stats, should the test be embedded in a message box properties. Perhaps more opportunities will reveal themselves along the way.
Even this is still far from complete. handles text well, but I still need to implement a system of telling it to print user stats and images. I'll work on the diction of accessing items near the end; when it is time to work on selection boxes. Not saying it was, but suppose a fight in the early final fantasy games was mainly interacting with three main selection boxes. The command box, and a box of monster images, and a box of allies.
One of the newer modules is user actions. Don't think of action as mario jump, but more like "talk" [to npc]. I have yet to implement them for a player class. But suppose the fix [which I will be adding] for now is to assign say "steal" to certain classes such as a classic "thief", but that skill has to be learned before it can be used [outside of battle, or possibly in battle in some cases]. That fix is not sufficient, and it would break my current idea of game [and map and chests] events progress ids; I may have to introduce player events ids. The to do lists just keeps growing just thinking about it; And in trying to get screen shots, I just learned that trying to load a save image back to edit still tries to call a 16x16 tile (not just a mislabel). I mean really; the image module is the very first basic module. It feels discouraging to see that, but there is kind of a need to get to the full hierarchy first to fully know what is required of the lesser tiers before trying to perfect them.
One of the newer modules yet to be developed is to extend the concept of player classes. This may also make me create yet another module called races. At the moment attack types, races, and defenses are in the same module. It may sound dumb to keep them together, and there are arguments that can be made either way. I think I know an easy solution, and that would be to include select boxes rather than separating the data. And I think that implementation could give me more fighting options besides the basic combat triangle [which I originally wanted to do before scrapping] and also the basis for a module to create more options besides the basic str/int/dex system, but it is going to be nasty to implement as it would dramatically change other modules. Although it is easy to create the idea of say a fighter class. There is of course an issue of gender; There are only two genders. I mean sure, someone could dress up a female npc as a male or vice versa, but there are only two genders I could have just left a developer to individually create a fighter_m class and a fighter_w class, and I suppose they still could if they wanted to account for or contradict the biological differences between the genders; And before someone calls me a bigot, suppose it was a race of spiders. I am assuming in this day, people would demand that women are just as powerful as men in terms of game play. And so the idea was to make this extension of the character class just to set various skins for various user defined game states. But keeping in mind older games, or even not so old, many fighting classes could each have a race assigned to it. And with that, why not also include race bonuses. Should say a dwarf fighter have a higher def state, or an elf archer higher dex, a harpy mage have improved evade against physical attacks. Speaking of which, sounds like I will need a module to define race/elemental type evasion by attack type. Suppose there was a way to implement nfts into this process; way too ahead of myself at this stage.
I have a general layout of defining items, though again many things will have to change-especially in regard to equipability. Some games may include a weapon [other armor, pets [not included yet]; and even pets can have armor in some games, and mounts [don't even want to begin]] that can gain levels and stats. I am at the point of being aware of it, I could extend the player class module to include equips, pets, level scaling monsters, and whatever else I wanted to level. But its more like I would have to deal with two separate item arrays. One your basic array of item number and item quantity, and the other an array of item objects that can no longer fit this simple model. Many games will also feature monsters that scales with player level, and I don't think there would be too much of an issue letting a monster feed off of the existing player class module.
As I chug along this week, I can see more and more how a 2d runescape could be made. Not saying the code would do that or anything close [at this stage, I am not doing server]. At this point, I haven't given much thought to xp other the two scenerios of: after winning a battle, does the xp all go to each survivor, or does it get split between them...oh, and how should it be issued to say an axe. Or if we jump to final fantasy 2 (nes); an axe skill level. Certainly, the character xp belongs in a player stat record. But in runescape, where would mining xp go. And so, as you see another module will be needed just to allow a user to define xp types-and whether the xp is at the player level or the character level or something else. Runescape also offers a different xp giving methods than traditional games; if you do damage, you gain xp.
What I am trying to say it is kind of easy making a [2-d] game if you have a understand the game mechanics and can implement a focused plan. There are many ways of coding things to work when all you really have to do is assign variable in memory and do whatever operation when required. I Can't say those ways are inherently wrong; they are probably inherently much faster programs too. In coding this, there is no focus planned. It's still storing data and performing operations on it as needed [albeit that is a part of it], but it is structuring so it can be used for all sorts of purposes. But the end goal is to make coding games easier so the average person can do it.
There is a chance I could put the project back in hibernation. Supposing anything I do ever makes money, I don't want to pay uncle sam so there is no rush to market until I am free [not to be confused with free as a bird] . I'd rather pay taxes in any pro-life country that will respect my rights and my ambitions in life; the exact opposite of this country. Also, I have homework to do, and mid terms next week. After tomorrow, I'll have to put up coding for a while....if I can. It will also soon be time to til the soil and plant seeds.
The optimist in me would like to believe I had 2 weeks left [ignoring classes] to get the editor done....until writing this. Some of the new modules I identified in writing this are just copy, paste, and edit-nothing too major. Now the optimist in me kind of believes one-two months for the editor, but obviously I kept let sliding the little things. More than likely it would be 3-4 months to finish the editor, but I could start working on another project soon.