I intended to put a lot of work into the game over the long President's Day weekend, and I did spend several hours on Monday, so I should be satisfied with that. Part of time management is being honest about what time you really have available to your project.
I added in a dialog box with a menu tree of different activities (buying and selling goods, buying fuel). In projects past, I've done this sort of thing as a stack of more or less uniform items, so that exiting out of a part of the tree is just popping a thing off the stack. This time, though, I did some gross hardcoding; there's three levels of the menu tree - a toplevel menu where you pick buy / sell / fuel / leave, a second level where you pick what good you want to buy or sell (ore / organics / technology), and a third where you confirm the actual price being offered. I'm not really pleased with the design, but it's working for now, and as I'm rushing to get stuff into the game, I'm sacrificing code quality.
Which makes me reflect - is that really what I want to be doing? One of my goals is to make a game a month, and I seem to be on track to keep up with that. But another goal is to incorporate good JavaScript / Closure design habits, and I think that's being thrown under the bus. Perhaps my next month's game will allow me to rebalance, doing a less technically challenging game, but giving me time to refactor some of the code I've been carrying forward.
One half-joke I've made several times is that a game engine is whatever you carry forward into your second game. I've been dragging around a little bit of code from one project to the next, and have some ideas of ways that I want stuff to work, but it's not packaged nicely. Really, that's OK, because my goal isn't to have a fancy engine at the end of 2013, it's to have good practices and (at least) 12 games playable.
Next up:
- saving game state to a cookie in the browser
- dynamic pricing, so that planets supply or demand can be depleted by player actions
- "big world" system placement, using procedural naming and sector-based system distribution. This will be a huge change, as I won't be able to think about the player visiting all of the planets, or having known systems to refer to.
- make it easier to understand what the player has in his ship, which will make it more clear why a system might not want to buy or sell anything.
- frictionless / inertial / Asteroids spaceflight model
- vary the sizes of planets
No comments:
Post a Comment