🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Uncaged, Too Much Time and Still Going Backwards

Published August 04, 2014
Advertisement
So much has been going on in the last month and a half for me. Was back on that damn roller coaster, of ups and downs for a bit there. Too many good things, made it hard to notice how crappy I put that roller coaster together. Though I keep my head up and moving forward. Just now I'm walking rather than running towards the future. Bit off way more than I could chew and didn't realize till it had burned me to the ground.

Vague talk of life aside, Rogue is still on hold. I'm going through with the little war game I mentioned last posting. Something simple to clear my head and test a couple ideas I have for cleaning up rogue and implementing a couple features. Looking over the code now after a month away from it. The glue tying items, creatures, and the map together to allow things like ranged attacks and such is a huge mess. There's alot that should be contained to just the creature system, but parts are hacked into both the item system and dungeon systems. Just tracking down why a thrown potion wouldn't apply its effects to the hit creature was a massive headache. and came down to some code in the dungeon system.... had nothing to do with the item or creature system....ugh.

I was bored and just with half an hour I didn't want to start on either project just to have to leave it when I finally got going. So I put a little more flexibility into the particle system that is used to splatter blood and pop the floaty text you've been seeing in the game demos. and a very rudimentary Arkanoid clone for testing. I had to have something to show off right :)



Phew, with that off my shoulders, its time to code.
Till next time, keep coding and don't quit.
1 likes 3 comments

Comments

Azathotep

If the codebase has become a mess I really recommend starting again with a new codebase from scratch rather than trying to fix it.

It might seem crazy if the codebase has taken months to develop. But starting again with reference to the old project seriously takes only a matter of days to produce something better with a better architecture.

If you are skeptical then why not just test the idea out not expecting it to work, like take two days to dedicate to just starting a new project (for the same game) from scratch. If you don't like the result then you can just bin it and go back to the old codebase. Two days is nothing. But I 90% guarantee you will find this massively boosts development. Not just because you can iron out the architecture better from what you learned from the old project (eg ranged attacks), but because by slamming a lot of code around and making the codebase cleaner it boosts motivation to develop, in stark contrast to being stuck and demotivated by the mess of the old codebase.
Also I find when a project goes on for months I begin to lose mental connection with the codebase. So much of it I didn't touch for months so it almost feels I didn't write it and I lose track of how it all fits together. I start to wonder if I am in control of it. By rewriting you get to remap the codebase in your mind fresh. How things fit together becomes much clearer.
Edit: Ah I see you already restarted the project a month or so back so you already know this, probably know it better than me. I think roguelikes are the hardest games to make IMO. The turn system and handling of events is far more complicated than real time games I find. What I did after I "paused" my roguelike was make snake, then I went on to make a real time game (which is also now on pause/hold (because busy on work-work)), so yeah similar idea. One day I'll be back to roguelikes! but yeah project restarts/rewrites are what I plan to do in future whenever I get stuck.
August 04, 2014 09:41 PM
Navyman

I do similar restarts, but on smaller scale. If I think I can refactor a function or a section of code I will copy the function and start reshaping it. Allows for a point of reference if things go pear shaped. :)

August 05, 2014 01:07 AM
coremarq

Thank you guys. I won't be doing a complete restart. One of the big refactors I did to this project a while back was to make it more modular. Since then I've actually ripped out huge chunks and re-wrote them from scratch. The dungeon system was a big one I almost tore out completely and re did to handle features and object interactions far easier. It's nothing new to the project.

There's a few major pieces I think can be made to be more flexible and contained then they are right now. it can be as simple as the fact I didn't realize my LOS code was broken till I started casting rays to determine what a ranged ability would hit. Fixing that broke alot of what I was striving to consider a standard for the project.

Though one major aspect has been nagging me and tempting a complete rewrite for some time. I started this project with the intent of making it as data driven as possible. It was supposed to make things easier to edit and tweak. Unfortunately the project started off with a huge burst of motivation and drive like none other. I coded like a mad man, I had no desire to bog myself down coded alot of fluff just to load everything from scripts. The project quickly migrated to the hard coded style of the first one.

Now that the project is gotten to a moderate size, and I've seen how everything fits together.... I really want to tear things apart and make it data driven. So I can tweak things without waiting the 3 minutes or so to build. Three minutes doesnt sound long but when you tweaking one variable over and over again, sometimes 10-20+ times before it feels right. I've eaten up a half hour or more just letting it compile. When I only have 1-3 hours to code, that's alot of wasted time.

I haven't and won't abandon the project. I enjoy rogue likes way too much not to make one with the specific features I like :). I'm keeping a list of brainstorms and ideas that I add to quite regularly, for the project. It's still the busy year here on the little island I call home, and some annoying responsibilities reared their ugly heads in the middle of it.

The project is till on hold for basically the same reason as before, I don't have the time to devote to it right now. The projects getting to that scale were an hours' worth of time doesn't get anything done. I find atleast three hours has become needed. I've been needing half and hour or so just to skim over the planned features and figure out my angle of attack before I can even get some decent coding done.

I won't deny the thought of a restart, but I don't things are that a mess, yet. I'll have to see where my brainstorming leads me when I can spend some time on the project.

August 05, 2014 07:19 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement