Game Dev Diary for "Daughters and the Exotic"
Dev Diary Preamble
Hi, I'm posting a game dev diary here because it's a way I can put a period or positive exclamation point at the end of a day. I'm posting it here because it's a place where no one will pay any attention to it. Lol, that's anywhere on the internet, honestly, but I imagine there are some nerdy programmers here who may have some coding tips for me. I'm using Python and the Blender Game Engine. I'll probably be looking particularly for MATH TRICKS. Share with me the math prowess! What is Daughters of the Exotic? Well actually, the gameplay is a bit of a secret, but essentially it is a low poly Rogue-Like JRPG. It features a Real Time Turn Based Battle System. Its protagonist is a man by the name of Grendel. Grendel is a corporate security officer who finds himself hunting down a team of mass shooters who are active on a deep space research colony of 50,000 souls. But before any of that can happen he has to agree to work on the distant colony to begin with. However, due to a lack of faster than light travel travel, agreeing to take the job costs him more than 40 years of cryostasis time, which means by the times he arrives on the colony the human race and culture has changed to such a large degree that he can barely recognize it. That's all of the story that I will talk about from this point on. What Software am I Using? Blender 2.6 and its Game Engine - coding with Python Genetica Renoise I actually own Zbrush and Photoshop. I have Unreal Engine installed on my harddrive. But I love blender, honestly. Perhaps at some point I would be able to migrate to Unreal. But atm I commit to Blender. Also, I feel like I never learned how to use Genetica just because there isn't any hype around it. I think it's a powerful texturing tool and so I'm going to follow through on my hunch that it's been criminally underestimating over the years by also commiting to using it for textures. When Did I Begin Active Development? A week before this post. Yeah, it's nowhere near completed. But I've spent years ruminating on mechanics that I'd like an RPG to have. So years of thinking about it. But I just started actually doing stuff last week. How Far Along is the Game? In the first week I have maybe 20% of the core battle system in place. Right now the battlefield can randomly choose from the roster of enemies and produce a set of enemies at random for varied encounters. The player can target enemies and enemies can target the player. Depending on what gear you have equipped and what stats you have on your characters, you can damage one another, but I still haven't implemented skills or animations and a lot of other things. But the framework is there. What to Expect from this Diary 3 Models + 1 Coding update a day, that I'm able. I'm basically going to be talking to myself. The story will remain a secret. And so will the game mechanics. But what I will show in this thread are my very very imperfect coding skills as well as my imperfect artist ability. This thread has more usefulness to me than to anyone else. But maybe some game dev hobbyist would find it interesting. First 10 Minutes of Development For fun I'm just going to show the very first 10 minutes of opening up blender and this is the code that I wrote pffft. Beginning First Character Model Next Update at midnight ~~ Last bumped on Apr 6, 2019, 8:55:51 AM
|
|
Low-key paying it some attention; not so much it's a lot, but a little as zero replies can feel deflating once it's out there. I know nothing about coding, but creating something imaginative and technical from scratch, yeah I get that process and how satisfying it is - and it's interesting; good for you.
Last edited by erdelyii#5604 on Feb 3, 2019, 6:02:47 AM
|
|
" Oh wow, a human being with a human heart. That's a first on the internet. Game dev posts are notoriously savagely ignored for some reason. I know that there was this guy who had a full time job and on his off time over the course of a couple of years he followed his passion and ended up releasing a respectable mobile game onto the market. He made a post about it on Polycount forum and... Nobody... said... a thing. And when I called out the community and asked why absolutely nobody could be bothered to show any interest in a man who had just released a respectable mobile game that he made on his off hours... only one guy said anything and that one guy said... "What? There's nothing to say about it." What I learned from this is that you have to be a fucking savage in order to be a game dev. And you literally can't be bothered to give a fuck whether or not anyone agrees with what you're doing or what you've done. This is the first and only law of game development. That's why I'm releasing my diary into a haven of some of the most disinterested forum goers I could think of. If I wanted a pat on the back I'd go to blenderartists.org But I find your humanity to be both refreshing and unexpected. Good for YOU. Anyways, my first update is me taking an L because I just got back on ketogenic diet, not necessarily because I needed to lose weight right now, but because other reasons. Anyway the keto flu hit me like a dump truck around 8pm so I had to put my head down and go to sleep. I woke up at midnight, so I'm just gonna make dat update right now with only one model and a code snippet. Going for 3 models a night was super ambitious for me anyway. Maybe I'll actually hit on it occasionally, but my focus should be coding anyway at this point. Inventory Class Note that there is more to how inventories work than what I'm showing here. But here is the way I have the class setup. Any real programmers will notice that I am not very elegant with my code and I've taken a VERY verbose stance for readability's sake. In this snippet, I just basically made an Inventory class for all my submenus that will behave similiarly to an inventory. That means both gear and skills will both be within the Inventory class because they are both a list of modular collectibles that the player will want to reorganize, select, and use during different situations. The code will interpret the contents of said inventories differently based on the status of the state machine within the game. You see at the top I have hardcoded in a couple of empty lists, one for the party inventory and the other for Grendel's skill list. Ideally, I would have some code generate the lists dynamically based on the constructors for the classes. But for now this clumsy way of doing it seems to be okay. For the record they are both currently working right now within the battle system, but I haven't plugged them into the rest of the game in the sense that I can only add in new items directly with code. I haven't yet made it so I can open a chest or something then add the items or skills into the list. But honestly that would take like 10 minutes to do because it's a simple “for x in Inventory.list: if Inventory.list[x] == 'empty'... list[x] = modify_index” type operation, and for the moment I'm focusing on battle system stuff rather than exploration. Currently I want there to be a weight limit on how many items you can carry. I'm just thinking about the most efficient way of implementing it. Should the inventory record its current and max weight within its class, or should the weight only be calculated when you alter the inventory? The later seems better now that I typed it out lol. I also have other secret things I want the skills inventory to record but those things are secret and so now I'm wondering why I even brought it up. Finally, there is an Armory class already so if I want to define gear I just add to the Armory. And there is an Item Mods class, so if I want to add Mods to the gear within the armory, I just add to the Item Mods class. Yippee. That means that random loot is on its way! I'll admit, that in this aspect, I have been greatly influenced by my appreciation for Path of Exile. Right now I have several rarities and here they are. Broken, Damaged, Ordinary, Honed – these are your basic rarities that only spawn with basic item mods Then you have your special rarities that spawn with 1-3 special item mods – Refined, Masterpiece, Unique (shout out to PoE!) Then you have your chase rarities that are super fucking rare,.. Exotic, Wonderful, Sublime. These spawn with truly amazing mods that makes each gear stand out as something that is build enabling or perhaps BiS for a certain niche character. I have an algorithym for determining rarities but its a secret. Just know that what needs to happen in order for a Wonderful, or Sublime to drop is statistically LUDICROUS lol. To my make believe playerbase I have only this to say about it:. “I don't care about your tears. Because you're not entitled to these drops. As a matter of fact, if you can't stop crying about this, then you're honestly way too sensitive for this game, you spoiled, rotten child!!” Lol I can see the YongYea video already condemning me for this. “Tone Deaf developer Alienates Potential Playerbase and is Mercilessly Mocked on Reddit.” Anway that's the coding portion of this update. Pre-Alpha rendition of the Utility Pouch I'm just establishing general ideas of what models could look like. The point is that now I have a mesh for the Utility Pouch that I can now use in the game while I'm coding. It doesn't have to be the finished product. |
|
Charan, usually I don't say anything when people misdude me but DUDE. You're having a Boerexeon moment. Haha, sh, don't reply on that - ok.
*Manspreads* So... All my fault eh? Excellent. I never look at threads you post in and think "Oh, I wonder what Charan said"... No no. " Thanks, and yes, that's why I said "low key" :) I won't say too much more, maybe in a few posts. Beaver away, good Sir. |
|
Goodbye Old Debugger
Today was more of a planning day. As the game engine's debugger's monitors are indicating that all features that I've put in so far are FULLY FUNCTIONAL!! That means that I no longer need most of the things that are on it. Which means I'm gonna wipe these stats off and move on to the next set of new features that will need debugging. So yes, it's weird but I'm ruminating on my debugger text which has become obsolete for the most part! But I also get to think over how all the game's features are fitting together up to this point. The code is starting to become complex a little bit. That's why I'm being careful and not just jamming in new stuff but pondering how it's all could best come together. Too Much Information - a Walkthrough of the Debugger ;) Spawner 0-4 shows the 5 different spawning nodes that randomly choose from the enemies class in order to create varied encounters at the start of battles. So if you are in biome 1, the spawners will look at the biome1 lists of enemies and randomly spawn them in. Then if you are in biome 2, it will look through biome2, and so on... Each enemy has a difficulty rating, so based on the difficulty setting that the player chooses at the start of the game, the spawners choices will be altered for what it will be spawning in. These choices will be modifyed by a simple numeric weighting system. If you have high difficulty, then the spanwer will spawn in more monsters with higher difficulty integer value. And vice versa.There is even the capabilty of them loading a base class and then adding random mutators to the enemies! Yes, even modifying the meshes and textures so that the enemies will look different. So when the debugger says spawner has class it means that it is occupied by an enemy not that it is wearing a tuxedo, tophat, and monocle as you'd most probably hoped... so sorry not sorry all the Grendel time and xi stuff are just numbers for faciliating the real time turn based battles. The turn length is interesting because it allows me to set how long in real actual time should it take before theh game says “okay, the next turn has started “ I want it to be long enough for strategic thinking to be allowed, but fast enough for it to qualify as real time. There should be moments when you need to hurry up and do something because the boss is kicking your ass and essentially lapping you time wise because you are spending too much time contemplating what's in the menus, ya know what I mean? Also, what I REALLY love about real time turn based is the implications it has for what is typically known as 'agility' even though, spoiler alert, Daughters has no agility stat – but anyway typically there is an agility stat that tells you how quickly you can act and well you can dodge. And so what that means is that gear with heavy weight, but high defense will have a trade off on that agility stat. I love that as a balance mechanic because it can also go the OTHER way. In my favorite RPG of all time, Breath of Fire III there is the ability to wear LIGHTER THAN USUAL gear in order to gain an EXTRA TURN but as you might have guessed that means you are going to have worse attack and or defense stats in order to gain that speed. I love that option and Daughters can facilitate those features. The interesting thing for me is to fulfill my responsibility to ensure that all options are viable ones. That wearing heavy medium or light loadouts are all useful, advantageous and distinct from one another but in a manner that is appropriately asymmetrical. Inventory stuff is obvious. You see just like PoE, when you move items around in the inventory, the cursor acts as a third container. So you never move something from one inventory to another, instead, you move it to the cursor and then the cursor drops it off in another inventory. Then you have statemachine stff that I mentioned. In yesterday's post It just tells the game what the context of all the data currntly is. Is the battle ongoing? Is the battle ongoing with or without a submenu open? Because the controls will issue completely different commands depending on not only whether or not a submenu is open, but WHICH submenu is open. Also, when some submenus are open, time needs to stop during fights while with others time continues to rage forward during the battles. Last but not least is the dialogue displayer. I think in RPGs the way the text is displayed is EXTREMELY IMPORTANT. The typewriter effect of having the text scroll gradually from left to right is what I have currently implemented. But ultimately I want it to basically be as dynamic as Persona Q's is. Where the text basically becomes a character in and of itself! I just thought I'd take a snapshot because I'm done with most of these debug messages. Because they are all working. Time to move to another crop of things to debug. ;) Modular Gear Today I decided to implement modular gear designs ala Borderlands. This basically means that prefixes, suffixes, special, and chase mods will all affect what a piece of gear will look like. In this example we have a Pearlescent Cross of Valor. The gem in the middle will be colored to look like a pearl, it's clearly a cross and the flag like thing at the bottom signifies it is of the Valorous persuasion. I just think it's cooler when all of the gear you find on the ground will look different from one another. And if you know your build needs a Pearlescent charm then all you have to do is visually look at it to see whether it will have that mod on it or not. If your build needs a Valorous piece of gear, then you can just look for the flag. Yes gear will drop unidentified so you can't just mouse over and find the name, instead you have to have sharp eyes and visually recognize what you are looking for. This actually reduces the amount of modeling that I will have to do! If I make 100 bits and pieces I can mix and match them together in order to make 1000 pieces of gear. Remarkably, adding this feature only required about 15 lines of code. I never would have guessed until I tried it. It's not yet actually working however because I'm putting off the actual loot generator because its too early to put it in. You can't finalize loot generation without actually prioritizing the mods themselves. And I would probably need 7 days to get that point from where I'm at. And that's if everything goes well. Today was more about taking a look at the bigger picture though. |
|
Today spent most of the time learning about blender game engine itself. Turns out I had to reorganize some code. And that's before I actually get to reorganize my code - again. One reorganization was purely based on syntax, the other is based on the need to make sure the additional menus I'm adding work together coherently.
After that there wasn't much time before midnight. So all I did was relax a bit while I played around with my one and only character model that I've started so far. Still just finding proportions, curves, and attitude. I call this character - The Machine God, Hera. 'If you comb over the entirety of Sector 7-b, and if you're lucky enough, you just might find the Machine God wearing a snap back cap and a creme colored cape. Huh? Yeah you heard me right.' |
|
Machine God, Hera's Domain v0.01
Up until now the game starts up immediately inside a battle, no title screen, no overworld map, just bam, 5 random enemies vs Grendel's party with only cubes and toruses to represent characters. That's because I wanted to start out testing the basic battle system functions early on. But now that the first iteration of timing and targeting etc, has all been done, I'm in need to test menus and submenus that affect the player and the world. As such I figured it might be prudent to have at least one enviornment to walk around in from which to call upon said menus that need to be tested out.. Without being specific, Grendel finds himself trespassing within Machine God Hera's domain rather early in the game. . That's why I went ahead and started fabricating a modular kit for Hera's Domain, which is a essentially a half-way broken down laboratory. The screenshots may look like pure chaos but actually, if you look at Brushes pic, you'll see that it's put together with really uniform sized pieces that snap together. And that's one of the wonderful things about blender. It's hard to explain if you've never used it but basically I can take one of those pieces on the side and then alt duplicate it indefinitely. What that does is make it so whenever I alter one of those pieces, I alter ALL of them. So that means, I can add detail and texture to just one tiny little piece of wall on the side and the entire game will update adding that texture and detail. So yeah everything is blocky now, but thanks to blender updating any map I work on now is relatively simple. I'm gonna keep the base pieces really simple. And really this biome needs like 3 set pieces and a handful of more modular ones and then I can start to texture it and add details. But for now I want to think about the level design. I like the multi-level feel. And the hanging wires. So I gotta accentuate that part. And find other appealing things about this biome's concept. Mo Menus Mo Menus Mo Menus Coding wise... still on dem menus. Never really thought about how much of a JRPG is comprised of menus. It might not sound too special of a task, but you have to understand that games run in loops, and if you mess up your code and have one thing run out into the wrong scope, all of a sudden you have menus that never disappear or that flash when you click them because they're rurunning calls, or that only get called up once and then only cause errors afterwards. Well it's all a result of my coding ability |
|
It was hard today. That's what she said. I ran into several issues. Think I'm just gonna gut about 50 lines of code and rewrite them from scratch after maybe getting some sleep.
But still, even though the outcome wasn't that great, I still look at the blender interface and admire at how beautiful it is, well at least to me. |
|
" I lol'ed. Keep it up! I also don't know much to anything about coding. But I like the pictures you uploaded. The 3D modeling process (purple lines) looks really cool. Last edited by coatofarms#2347 on Feb 8, 2019, 4:41:32 AM
|
|
I'm not a programmer but this is very cool. Will you be posting a demo eventually?
|
|