Advice on how to proceed?

HayManMarc

Member
Hello Devs,

I'm beginning a large project and I need some advice on programming strategy. I'm just a hobbyist with little time, but I want to try to go about this as efficiently as possible.

My game idea is a space ship crew management game, in the vein of FTL, but with more emphasis on the crew of the ship (generally). I haven't programmed much for this yet except mapping a floorplan to a grid and implementing grid pathfinding movement (point & click destinations). I've also done some camera manipulation controls (pan and zoom), and made a quick little mini-map. Here's a screenie:



I want to make the game be sort of like a tycoon game, where the player can make the floorplan of the ship and manipulate the items inside. (Right now, it's just a manually created floorplan, like a 'level'.)

I'm wondering if I should work on this part of the game first (the tycoon/ship building aspect), or will I be able to implement it later easy enough after programming the item objects, crew stats, and other stuff?

The game will be a single-player, multi-character RPG (the ship's crew), with a tycoon-style ship building (and customization) feature. The individual crew members will have stats similar to tabletop RPG's (including skills and personalities) which will dictate their actions (AI), while the player assigns the crew's job positions and various tasks during gameplay. The gist of the game is managing the ship by hiring/firing crew (or replacing killed crew) from populated areas throughout space, and maintaining/improving your ship (or buying new) as you go through the story of the game.

As I've said, I've started development on this with setting up grid collision and pathfinding and I was going to start creating some GUI elements to help me get a better overall feel for the game. However, I couldn't help but wonder if I might be setting myself up for headaches later because I might be doing things in a weird order.

What would your method of attack be on developing a game like this? In what order do you tackle projects that you've found to be the most effective?
 
W

weiner

Guest
I wanted to make space station simulator. I started from building system. I have oxygen system. It is terrible, but it is working. Are you going to have oxygen system? I think it can be very hard to make with ship like this. But it depends on how you will build a ship. How will look building system? Block by block or room system? Parts fitting to each other? I am trying to start from the hardest things to make or design. Sometimes it takes just small time and other easy things will take most of the time. But then I know I can finish game, but I never finished game :D
 

Yal

🐧 *penguin noises*
GMC Elder
In what order do you tackle projects that you've found to be the most effective?
"Make something visible ASAP", I'd say... rather than coding systems in great detail and getting bored before you've got them playable, make placeholder data everywhere and focus on getting a crude mockup version running in the actual game (even if it has the same level of interactivity as a mockup doodle on paper), then refine it if it still feels good, gradually chiseling out the subsystems. It helps if you've planned out a structure in beforehand so you're not just making random stuff and aren't sure HOW to proceed, so you shouldn't do stuff mindlessly, but if you make everything bottom-up and won't see any results until you're 100% done chances are you'll get bored and drop the project before you reach the 50% mark. Focus on getting things done recursively, I guess you could say? There's a metaphor where you build a tricycle first, then a bike, then a car, so you can ride around from day one even if it's slower, rather than building the tires first, then the chassis, then the engine, THEN you have a car you can use.
 

HayManMarc

Member
Thanks, Yal. I usually do things how you've described - getting the base of the game in place, then refining. Works pretty good with platformers. But this one had me a tad hesitant. Probably because there are going to be so many variables playing off each other, it's making me worrisome. I'd just hate it if I get so far along and then realize I should have coded some system first, before coding another one. Perhaps I'm being over-anxious about it.

Anyone else care to chime in? I would appreciate as many opinions as I can get. Thanks!
 

GMWolf

aka fel666
What really matters isn't the logic of systems internally.
It's the interfaces (how the systems communicate) that is important.
So I would suggest making a 1/2 assed floor plan system (could start off being manually built), but making sure it has a solid backbokne to work on.

Then you can incrementally add systems, and make them better.


(I would suggest either using an event bus, or some sort of systems stack for the "back bone of your systems.)
 

Yal

🐧 *penguin noises*
GMC Elder
What really matters isn't the logic of systems internally.
It's the interfaces (how the systems communicate) that is important.
That's also a really good point... when I think about it, I realize I usually start by building interfaces (or at least create dummy scrips with interface purpose) before I build functionality... for instance, one of the first things I created for my YaruDanmakuEngine was the level progress system (you put scripts in a queue, scripts are intended to spawn enemies but can also spawn cutscenes or whatever you want, the control object automatically pops the next script from the queue each step if there's no on-screen enemies). It took several hours until I actually started ADDING enemies to the game, but having that script in place gave me a structure to work from when I did.
 
S

Storyteller

Guest
I would really like to see a very basic system for gameplay, where you can point and click and hire crew and buy basic parts, a little more than what you have so far, then see really in-depth work done on character progression and system interaction.
A game like this for me, is all about micro-managing.
 
Top