Hello, not sure where to post this however it is related to C2 and a beginner question.
I am trying to make a simple RPG such as RPG Maker VX Ace/XP (Horrible thing severely limits the resolution, I want it fullscreen 1920x1080 but also scale to other resolutions and Rpg Maker does not do that) but with C2, and a different feature set.
However I am having a hard to figuring out which features to add first. I want to develop the character movement (done), with enemy AI to move around the map randomly, and then send the player to a map to battle with. Obviously that is not the full game but that is my first step right now. However I do not know where to start, I need to make the inventory/menu system, battle system, item system, and so on. How do I know what I start on first? Just make them as I come across them? I guess the main thing I need here is to know how to manage the Game Development process.
Thanks in advance!
Develop games in your browser. Powerful, performant & highly capable.
I'd encourage you to find the essence of your game. What can you take away from it while retaining its entertainment value? You don't need an inventory, nor do you need a complex AI etc.
In other words, you want to work on the systems the player will use the most often and find fun into. In a classic japanese RPG, this will most likely be the battle system, and then moving and interacting with the world. Features like a slick UI, an inventory, a shop will most likely only add content and a bit of depth to your system: the player will go through dialog boxes and be attacking foes, most of the time.
Good luck going forward!
Well yes that partially answers my question. I was just wondering how to organize my time better while making this, for example: What should I start first.
I can't start the battle system yet, because I need items and equipment/characters for that.
I would start out on items, but then I need to first start out on stats and that. I got the base structure for my stats done so far, so I am thinking of working on items.
Thanks though, it does answer some of it.
I'd leave out the items etc. first, and integrate that later. Use placeholder code to fill in the gaps: instead of a fully functionnal inventory, you can have just one item stored in an array and a placeholder text instead of a UI. You will have to reorganize and redo some of your code down the line anyway, despite choosing another road. However, if you can focus and deliver the core mechanics of your game fast, you will be able to get feedback on your design sooner.
I'm working on a rpg prototype for an event next week, and here's how I've organized it:
1- Worked on the basic turn-based attack mechanic, with a basic 1 button menu (it's a touch based game). I added a rhythm mechanic while attacking, and sent it to be tested out. The overall feeling was validated by fellow gamers and devs. At that stage, the code didn't take in account the possibility of having multiple characters, enemies, an inventory...
2- I made a character movement, smooth camera, placeholder dialog bubble and animation state functions
3- Now, I'm re-coding the system to make it flexible-> I separate big logic blocks into various functions to minimize the need to redo stuff when I need to change a system.
Thanks for your answer! And sorry for the long delay in the answer.
It seems my answer does not truly exist, there is no way to actually organize it, it seems.
However that is okay, because I have seen a fellow dev (you)'s way of doing things. I learn by examining others, and seeing how you yourself have done things has helped. I have the combat system done (Prototype obviously, it's never truly done). I have not done any items yet, instead I have statically made the damage based upon a game developer's own logic (For example, physical damage is based upon (attacker’s ATK + rand(minAtk, maxAtk)) – (defender’s DEF + rand(minDef, maxDef))). A tutorial on that helped me out a lot. I only used the formula's as I did not like the rest of it.
It was very funny, it took me a long time of frustration trying to make the radius for npc detection before just doing it my own way (his was based upon x and y, and I could not get it right for some reason). Then I realized that I could just make an invisible "MobRadius" square sprite, and have the npc activate the chasing mechanism if ally is overlapping Mobradius As soon as I did that, I realized how to do it with X and Y haha. Too bad, I'm doing it my way. I have the MobRadius square sprite set size X and Y based upon Mob.Radius.
The whole families thing was annoying me (AllyAnimations being the sprite, AllyAnimation being the Family), so I decided to give all Families a Fam at the beginning (FamMobAnimations and FamMob), ran into too many naming issues. Still organizing my code, learning functions, groups, comments, etc.
What I want to do next is figure out how to do a ForEach FamMob so that I can just drop and drag a bunch of mobs and it places their Animation sprite to whatever one it belongs to. Currently they all just go to the first FamMob there is, and not individually.
I made the game screen (Where the player moves, talks to npcs, etc), on collision with a mob he enters the BattleScreen, with options using Up and Down or Mouse clicking on the option. After the battle he goes to a BattleVictory screen where his stats/experience/items etc are applied accordingly, and then presses enter to proceed to the GameScreen again. I had a difficult time figuring out how to make the player apply his stats because the player was not carried over (Could not do FamAlly.XP + Battle_XP). So what I did was make a whole set of global variables for the player (Global number Player_HP, Player_SP, Player_XP) and have the battle add to those, then set the FamAlly's (Player right now, eventually a whole party of Allies) variables to the global variable. Works this way, doesn't feel right but whatever works. Eventually I'll have to make a Player1_HP, Player2_HP, and so on.
I haven't played around with arrays yet though, could you please tell me what they are typically used for? Since I never used them yet for now I was just going to make global variables for things like (Item_Shortsword_Obtained, Item_Shortsword_Quantity, Item_Shortsword_OwnedBy, Item_Shortsword_Equipped, Item_Shortsword_EquippedBy etc).
And before I go on and on more, I shall click Submit lol. I love Game Development but really it's just for pure fun