Indie Game Development - First Steps?

If it's a video game it goes here.

Moderators: LawBeefaroni, Arcanis, $iljanus

ManAboutNothing
Posts: 35
Joined: Sat Nov 09, 2019 10:42 am

Re: Indie Game Development - First Steps?

Post by ManAboutNothing »

Paingod wrote: Mon Jun 15, 2020 8:41 am So 9 years ago I posted this, and it looks like I've gotten nowhere. 9 years is a long time. In that time I've bounced off this a few times, mostly out of frustration that I couldn't get "running" as fast as I wanted, but also because I just couldn't stay motivated enough. Every 2 or 3 years I "tried" to get into it but couldn't find the time/energy/motivation to continue.

I'm back in this with some new ideas and new motivation. Each day I'm doing a little more. Not planning, but doing. I've actually gone beyond "looking" at tools and have started using them - C# scripting in Unity and working through tutorials. Over the weekend I worked through a tutorial on animation and put together a "working" clock from scratch that was fully animated, and spent time following along with lessons on tilesets, cameras, collision, layers. Lots of basics.
All of this sounds good. Trust me when I tell you, after being an indie dev since 1997, its a hard business to get into, and those first few steps are usually the toughest. You'll have moments where you get demotivated, annoyed, frustrated or all of the above. But it can be so rewarding too. Good luck to you!
Derek
Very part-time indie developer and full time internet business tinkerer/failure/blunderer
User avatar
LordMortis
Posts: 70101
Joined: Tue Oct 12, 2004 11:26 pm

Re: Indie Game Development - First Steps?

Post by LordMortis »

A little late to the party.... :ninja:
RunningMn9 wrote: Fri May 27, 2011 2:25 pm And failed spectacularly. Programming a computer game isn't really about becoming proficient in a programming language. Not being proficient is certainly a barrier - but overcoming it leaves you with the real problem - programming computer games is *hard*. For all but the simplest of games, it requires a good deal of knowledge that have nothing to do with the programming itself.
And a barrier it was. From the way back machine, I started trying to learn to program video games in BASIC on an Atari 800, using ASCII to try and make my own better version of Telengard. Before word processors and spread sheets were a thing I was making mech designers for BattleTech all on the Atari 800 but my limited programming chops even in BASIC and ATARIDOS, trying to learn how to PEEK and POKE with any reasonable results left me in defeat, while I saw someone down the street writing his won knock off PacMan (still popular in the arcade at the time) in a day on his Vic20.

I'd come back to wanting to do video gaming time and again. With the coming of Windows OSR2 and the popularity of fighting games in the otherwise dying arcade, and 3D being integrated into video games, no longer requiring an accelerator, we had this idea for custom building superheroes who could then fight in a modular environment that could be destroyed, but only one of the three of us had the programming chops and those chops were spent putting bread on the table, so several books of design I am sure still are somewhere in my gaming closet.

We also had dreams of building persistent worlds on Internet servers, a sort of video game successor in role playing or strategy gaming to MUDs being played on university servers.

And get this, one of us (not me but I helped the vision) had this crazy idea that you could mix the idea pogs into a card game. You know, where your cards would be monsters and you could set your cards to fighting but the monsters fighting wouldn't be a self contained boxed game, they'd be collectible, so like with pogs, you'd buy packs and win cards off friends.

We worked on a lot of game idea back in the day. The guy who conceived of and then let go of the idea of a CCG as too difficult to produce even got a few published on a micro scale, mostly about building your own movie monsters and then setting them to fight each other, a sort of next generation Monster Squasher and button/grease pencil tank combat game played with rulers a la Car Wars.
User avatar
Kasey Chang
Posts: 20750
Joined: Sat Oct 30, 2004 4:20 pm
Location: San Francisco, CA
Contact:

Re: Indie Game Development - First Steps?

Post by Kasey Chang »

As a "final project" for my webdev Bootcamp I built a virtual scavenger hunt game based on Google Maps. I wrote like 95-99% of the front-end, based on some simple work someone wrote for the backend. Altogether? I'd say I did 66% of the project, the other two guys wrote 30% and 4%, respectively.
My game FAQs | Playing: She Will Punish Them, Sunrider: Mask of Arcadius, The Outer Worlds
User avatar
NickAragua
Posts: 6100
Joined: Mon Feb 23, 2009 5:20 pm
Location: Boston, MA

Re: Indie Game Development - First Steps?

Post by NickAragua »

I didn't make my own game, but I wound up attaching like a lamprey to an existing game. There's something to be said for not having to build everything from the ground up.
Black Lives Matter
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

NickAragua wrote: Tue Jun 16, 2020 1:55 pmThere's something to be said for not having to build everything from the ground up.
I agree with that entirely. Unity's suite of modules contains a lot of free assets, animations, and scripting. While it's not the same as tacking onto an existing game, it really helps to open up a game's script or animation and see how it's achieved. I've already opened a couple freebies with character controls that work exactly how I'd want them to, which should save me some time.

As a side bonus, right now they're offering 3 free months of premium access to their learning site, which includes direct talks with developers and lots of tutorials. What I've gone through there so far has been pretty well done.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

One thing that strikes me as interesting so far about learning with Unity's resources - they're absolutely avoiding any talk of Scripting and knowing code. Every single thing I've done in their lessons came pre-packaged with everything baked in.

Cloud animations and looping? Check.
Character animations? Check.
Scenery animation? Check.
Character interactions with other assets? Check.
Inventory management? Check.

The only scripting I've had to do myself was when I deviated from their lessons and deliberately sought a lesson on how to animate something. All of the lessons so far have been entirely "These are your assets and this is how you deploy them"

I keep waiting for the rude slap in the face I'm due to get when I need to customize something and rip open the script to try and figure it out.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
ManAboutNothing
Posts: 35
Joined: Sat Nov 09, 2019 10:42 am

Re: Indie Game Development - First Steps?

Post by ManAboutNothing »

I would've loved to have Unity or Unreal Engine when I first started game dev, for sure. A lot of stuff is baked in and automatic in a sense, and the time it saves is pretty amazing. Games that used to take 3 years now take maybe 1 or 2, and games that could be made in months now take weeks.
Derek
Very part-time indie developer and full time internet business tinkerer/failure/blunderer
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

ManAboutNothing wrote: Wed Jun 17, 2020 10:06 am I would've loved to have Unity or Unreal Engine when I first started game dev, for sure. A lot of stuff is baked in and automatic in a sense, and the time it saves is pretty amazing. Games that used to take 3 years now take maybe 1 or 2, and games that could be made in months now take weeks.
I can't speak for past development cycles, but Unity is seriously impressing me on this pass. I do recall bouncing pretty hard off it previously because of the complexity involved in just taking the first steps - and an utter lack of good tutorials to find online.

Now they have a whole "University" thing going on with lots of projects of varying difficulties and complexity to ease you into the system. Last night I bumped into two pretty cool things.
  • In a Unity 2017 project I worked through you had to manually set the camera to follow the player just so, with some float and space so it wasn't herky-jerky. It used a Cinema tool that I can't recall the name of right now. Last night I noted that the camera in my project simply did everything that had to be manually adjusted before. It was all default - smooth following, no jerkiness, and it just plain worked. From Unity 2017 to Unity 2019, that camera add-on became a default component.
  • There's a feature called PixelPerfect that lets you have Unity take a larger image and shrink it down, animating it as needed for rotation. I could theoretically take a 600x600 picture and have Unity turn it into a 32x32 pixel art asset that rotates smoothly across the screen and redraws itself as needed to smoothly display different shades and pixels from the original larger asset as it goes.
I don't even know how many other tools they have incorporated that makes it all so much easier. I was genuinely worried about trying to animate various poses and motions as a player's avatar navigated a sloped and slanted world. It looks like the stress has largely been removed from animating it and I just need to focus on positioning and gait.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

I wanted to toss out that I'm still sticking with this and still chewing up tutorials nightly. Last night I learned about scripting camera movements to smoothly follow one or more units on a 3D plane in the Tanks! tutorial (which is very descriptive in terms of explaining what each line of the scripts achieves).

I continue to be impressed by the sheer volume of information out there to find, and appreciative that so much of it is actually useful. I recall one attempt at this years back when I actually paid for an online class on this and it was all pre-recorded, but the instructor had such a thick accent and didn't delve into any details - it was all "Do this to do this, do that to do that" style of teaching with no "Why" or "How". Everything I'm finding on Unity's learning site is very much the opposite.

The Game Development Document I made is already well out of date. I feel like that's okay and it was an interesting exercise. The more I'm learning, the more what I want to do has shifted and I'm seeing that the elements I chose to use didn't come together in a way I thought they would. I may learn enough to reverse that thought, but not yet. I haven't actually laid a single line of script or committed a single art asset to "My Game" yet. Everything has been learning and experimentation.

This guy encapsulates the difficulty of getting into this fairly well. I mean, I'm keeping a log and I'm on Day 12 today with something done each day. He's been working at it for a couple years and only feels like he's relatively competent.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

I've been logging my activities and am currently on day 23 of continuous Unity exploration with a total of 65.25 hours logged.

My "dream game" that brought me to Unity seemed far too complex for me to tackle as a beginner, so I shifted gears to a 2D top-down space shooter. A standard formula for first games. It seems like everyone makes one and then moves on. I'm not content just getting it working and moving on, though. I've had a number of ideas to stuff in there and have found the process of development and troubleshooting pretty rewarding.

Right now I've got a game where I've set up:
  • Modular player components I can drop into different ships easily; the intent here is to allow players to custom select and outfit their ship before entering combat from a number of ships and parts, from turrets to armor to engines to power plants. Each component could be upgraded and has an impact on ship performance. This theme is done and proven last night when I took a new ship sprite and applied prefab sample objects I made to it and had it flying successfully in under a minute.
  • Similarly modular enemies. I have just one ship AI currently "Follow and shoot constantly" but intend to adjust that to "Follow and shoot when the player is lined up within the weapon arc, and shoot at where they will be based on current trajectory with some random variance so they're not all perfect marksmen" - along with this I intend to fold in ships that circle the player at different ranges or use broadside shots. As a test last night, again in under a minute, I took my existing "single turret" fighter and made a frighteningly powerful Cruiser class enemy with 5 turrets.
  • Functional player movement and aim; the ship currently accelerates to top speed and slides to a stop without input, allowing it to drift or maintain momentum for a while. You fire at your mouse pointer, and your turrets follow that pointer around the screen independent of your ship heading.
  • Functional player health and energy bars. Your ship can take some hits before being destroyed, but I currently intend repairs to be rare. Firing and shields also drain the power plant, which recharges over time at a fixed rate that could be adjusted with different upgrades or modules. When power has been drained, the ship can't fire.
  • Looped, layered backgrounds that move at different speeds with a procedurally generated star field so it never appears to loop.
  • Camera controls that keep the player from sliding off the screen, which is currently a 4:3 play area - with the intent to make it 16:9 with the remaining lateral space used for player info, like ship layout and stats.
Things I intend to set up in the short term:
  • Firing arcs for players and enemies, so there's more incentive to fly and aim with intent.
  • AI controlled turrets on some ship designs, so the player can focus on flying and forward-mounted guns.
  • Item collection for scrap from defeated enemies, used to purchase upgrades and unlocks after your death.
  • An actual UI for players to customize their ships.
  • Particle effects on player and enemy ships to show varying levels of damage.
  • Player ships ranging in size from tiny fighters to large cruisers - each with different flight characteristics, component mounts, etc. As you upgrade your ship, I also intend to scale back the camera so things have a sense of size.
My concept here is to make something vaguely reminiscent of Crimsonland re-imagined as a top-down space fighter, where you can fight endless waves of increasingly difficult enemies, only with random enemy placement. As a rogue-like, you collect as many resources as you can before you die and spend those on upgrades for your next run. I have a rough outline of a story and thoughts of adding stages/levels to move through as well - but am focused on getting the core mechanics working before I stack new layers on it.

I'm also using completely free art, sound, and material assets from the Unity Store. Nothing looks great just yet. Once I have a nice, functional game I intend to go back and replace the sprites with slicker ones - or even 3D models that rotate slightly and interact with shadows and lighting as ships move. When you make a "2D" game in Unity, you're still working in a 3D engine and can drop in 3D assets along side 2D ones. You just need to be careful how they interact and apply either 2D or 3D colliders to them (these don't inter-mingle easily at all).
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Kasey Chang
Posts: 20750
Joined: Sat Oct 30, 2004 4:20 pm
Location: San Francisco, CA
Contact:

Re: Indie Game Development - First Steps?

Post by Kasey Chang »

So, thoughts about spinal mount weapons (super-heavy) vs broad-side weapons?

And AI action 'table' where they choose an action by dice-rolling, albeit with different percentages, like X% chance they turn right to evade, and Y% chance they attack straight in? (Seem to recall Wing Commander had such action tables)
My game FAQs | Playing: She Will Punish Them, Sunrider: Mask of Arcadius, The Outer Worlds
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

Kasey Chang wrote: Tue Jul 07, 2020 9:53 amSo, thoughts about spinal mount weapons (super-heavy) vs broad-side weapons?
That's an interesting one. It's entirely possible, I suppose, to create "large" scale weapons that only fit on certain ships and have no firing arc; it's how the enemies shoot currently. They can only shoot where they face.
Kasey Chang wrote: Tue Jul 07, 2020 9:53 am And AI action 'table' where they choose an action by dice-rolling, albeit with different percentages, like X% chance they turn right to evade, and Y% chance they attack straight in? (Seem to recall Wing Commander had such action tables)
I like the idea, but I'd have to see it in action. I haven't even considered evading yet, but should. As a top-down shooter with enemies spawning in regularly, you don't want to get tangled in a long dogfight with something you can't hit - but you also may not just want everything to run straight at the player blindly. More advanced AI is a longer-off goal currently.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Kasey Chang
Posts: 20750
Joined: Sat Oct 30, 2004 4:20 pm
Location: San Francisco, CA
Contact:

Re: Indie Game Development - First Steps?

Post by Kasey Chang »

I was thinking more about tactics and firing arcs. If you have basically ALL broadside weapons, then there is no sideways movement... It's just all turning.

Smaller ships basically need 'spinal' mounted weapons to mount something heavier than their weight class otherwise they have no chance against bigger ships, but this also limits their firing arc, so they rely on maneuverability to line up a shot. Larger ships have little maneuverability, so they need turrets, and maybe ultra-heavy spinal weapons for shipbusting, and/or broadside weapons if they are going for qty and circling.

Fixed weapons are going to be heavier than turret weapons, and the trade off is limited firing arc. You can balance it with both power and volume (i.e. type of weapons mount)
My game FAQs | Playing: She Will Punish Them, Sunrider: Mask of Arcadius, The Outer Worlds
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

Kasey Chang wrote: Tue Jul 07, 2020 1:49 pmI was thinking more about tactics and firing arcs. If you have basically ALL broadside weapons, then there is no sideways movement... It's just all turning.
Sounds like Rebel Galaxy.

I'm currently working through field of view and detection with responses. The concept is enemy patrols not seeing players on their sensors until they get into a specific range, and having some areas (like visual cones) that extend sight even further as "active" sensor sweeps. Now that I can do spatial awareness, I intend to try and have ships stay near each other for protection.

My flight mechanics are too sloppy. I'm struggling to find a good universal movement application that can scale cleanly from piloting a fighter to piloting a capital ship. I think cleaning that up is next. I feel like a player should be able to disengage forward thrust and slide for a while in their original direction (not perfect Newtonian flight) so they can spin and face a target while moving away. I've got that, but it's too twitchy.

At this point I'm not even sure what I'm doing with the game I'm making. I'm just exploring mechanics and glomming them together, building a library of scripts that perform different functions. It's lost and exceeded the original goal of a scrolling space shooter by quite some amount. I'm starting to think of using the part I've been working on as instanced combat - like you might slip past or choose to engage a hostile patrol to get into a location.

This is scope creep, isn't it? The way to an eternal project that never finishes. I was reading one of my prior posts where I mentioned wanting to make Crimsonland in space and remember liking the concept as being light and deliverable in a reasonable effort without being immense. Every time I think of something new, it scales up the scope of the game and I need to stop that. I should revisit my original, more feasible, idea of making a smaller fun game. I should put together a game design document for that and try to stick to it.

I'm also scattering my attention by trying to learn how to KitBash with Krita. The free art assets I got through Unity look like cardboard cutouts. After a couple evenings of learning and playing with color blending and layering, I've been able to make a single ship that look better than the originals out of pieces of the original - and I still have a lot to learn.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Kasey Chang
Posts: 20750
Joined: Sat Oct 30, 2004 4:20 pm
Location: San Francisco, CA
Contact:

Re: Indie Game Development - First Steps?

Post by Kasey Chang »

Blog all that? :)

Yes, it's scope creep. Nothing wrong with trying to keep your original scope and think about adding stuff later.

You need different AI for different ships as they have different target priorities depending on tactical situations.
My game FAQs | Playing: She Will Punish Them, Sunrider: Mask of Arcadius, The Outer Worlds
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

I've been considering it, but time is short in my days typically between working 40+ hours, kids, the wife, dogs, sleep, school, and Unity time. Tacking on another "thing" to do every day isn't easy to fit in there - but I know it's a valuable tool. A few marketing videos I've seen for developers talk about people picking up their games from their development blogs.

I am keeping a development journal, though. What I research or accomplish each day as well as how long it took. I suppose that as long as no one's looking for me to wax poetic for 3 pages on my thoughts about life, the universe, and everything it would be just as easy to post those notes online.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Kasey Chang
Posts: 20750
Joined: Sat Oct 30, 2004 4:20 pm
Location: San Francisco, CA
Contact:

Re: Indie Game Development - First Steps?

Post by Kasey Chang »

I was just thinking about AI. You got the fighter AI down: point the nose at the enemy. Though you may consider having the fighters also want to stick with each other, i.e. tend also to follow the leader.

As for capships, I'd say it depends on your firing arcs. If you have basically a bilateral firing arc (half shoot right and half shoot left) then the AI should just seek to put half enemies on left and half enemies on right so max firepower can be used. But if weapon distribution's a bit different... Then its tactics will also be different.
My game FAQs | Playing: She Will Punish Them, Sunrider: Mask of Arcadius, The Outer Worlds
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

Kasey Chang wrote: Tue Jul 14, 2020 4:13 am I was just thinking about AI. You got the fighter AI down: point the nose at the enemy. Though you may consider having the fighters also want to stick with each other, i.e. tend also to follow the leader.

As for capships, I'd say it depends on your firing arcs. If you have basically a bilateral firing arc (half shoot right and half shoot left) then the AI should just seek to put half enemies on left and half enemies on right so max firepower can be used. But if weapon distribution's a bit different... Then its tactics will also be different.
I've got the programming in place to trigger things that happen within a defined arc, and it's a module I can stick into any component on the ship and have it work with a little tinkering and adjustment.

What I need to do for smaller ships (anything that fights facing forward) is to try and have them move towards where the player is moving, not where the player is at that point in time. They'll never hit you if they're always aiming at where you were when they pulled the trigger. I also need to introduce some weapon aiming variation so high-volume weapons don't just pepper someone with perfect accuracy. I do want to have fighter wings stick together, too, and remain somewhat close to larger ships so they don't all just trail off in an easy to dispatch congo line of ships moving at different speeds.

Last night I compiled a list of features in gameplay I want to implement. The general theme I want to go for is like Crimsonland in Space; a more hectic shooter - with a splash of RPG and customization in there.
  • Keep track of a player scoreboard so you can try and beat your own best scores with different ships.
  • Customization of player ships when you launch; you define the initial loadout, purchased with 'scrap' collected during the previous run - kind of a way to jump-start a run so you're not always starting at square one.
    • Starting weapons in turret slots, ranging from short range chainguns to long range rail guns, laser arrays, and missile launchers.
    • Shields, Armor, Engines, Power Plants, Sensors, Utility (tractor beam to collect things at longer range, for example)
    • Ship hulls would have specific minimums and maximums for values
  • Waves of enemies, scaled to the relative strength of your starting ship; waves happen on a timer to push progress and not dally
  • Enemies that spawn engage in patrol patterns and stick together, looking for the player - and bring in allies within range when the player is spotted
  • Unspotted enemies might appear as unknown red blobs to the player so you're not totally unaware of where they are
  • Stages may have debris, asteroids, or other things that obstruct line of sight and can be used tactically
  • As the player destroys ships, they may acquire blueprints that unlock new ships, weapons, and equipment to use at launch
  • During the run, enemies may drop power-ups that repair, boost damage, slow time, etc.
  • Enemies may drop AI Cores that can be slotted to ship systems to increase their effectiveness for that run
  • A tutorial that sets up a basic story for why you're killing endless waves of enemies and a final mission if you live long enough
This is all "in progress" and as things evolve elements may drop out or be added.

Things I already have done:
  • Level background concept with random star generation
  • Modular ship design for easy drag & drop of new components with different attributes
  • Player movement, though it really needs work
  • Basic enemy chase and fire scripting, though it really needs work
  • Functional health and energy bars on player ships
  • Functional energy regeneration and drain from systems like guns or shields
  • Field of View scripting that can act as short and long range sensors for both players and enemies and limit turret firing angles
  • Two "player ship" variants with different specs, like health, speed, turn speed, energy regen, armor
  • Two "enemy ship" variants that have different specs for health, speed, turn, and turret layout (a fighter with a single forward-mounted chaingun and a destroyer with five turreted chainguns)
Creating new power plants, engines, shield generators, and armor values for ships is very easy; it's just an object block with variables you adjust and save as a new variant and can then plug into the ship's given module for that part type and it interacts with other ship elements by design. Armor is a little too vague and I may consider giving it 'depth' or a chance to deflect shots of certain strength as well as heavier armor bogging down ship movement to simulate increased mass.

I've also started to do a little "kitbashing" to make ships from other parts of ships but it's time consuming and I probably want to save art asset work until the code is complete.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

I ran into two things that are provoking some rework, for the better I think ...
  1. Last night I discovered I needed to transition to using physics instead of just grabbing things and moving them with code. Using physics allows for more robust, natural movement across a plane without having to waste a lot of effort coding speed up and slow down sequences; it makes things feel like they have density to them and you're applying force in different directions to move them. This shouldn't be too much of an issue as I don't have mountains of assets to change that might rely on it - mostly just ship controls. This also opens up more options for things like having projectiles impart some measure of force on something, like a chaingun bullet might have little force on impact - but a massive railgun shot would knock something back.
  2. This morning I realized that in using physics, I'm probably going to want to play with gravity at least a little. I immediately wondered how I'd manage to work around that since my whole play scene is flat against a wall, like this | ... and I suddenly realized why everything I've found and had to adapt took so much work. All of it was designed for a play scene like this ___ ... This struck me hard, like someone put a big bell over my head and whacked the outside of it. The very first thing I tackled, before how to move a ship, was how to get a background moving so it looked nice. I accomplished this with three semi-transparent layers of nebula that drifted by on different speed loops and a simulated random star field that relied on particles and gravity so stars gently "fell" down to the bottom of the screen. This one decision, before anything else, has caused MANY headaches as I've worked and struggled to adapt samples and code designed for ___ to work on | ... and I feel like such a nincompoop. I didn't think anything of it. My project was being essentially filmed on a wall, so I had to make my elements work on the wall. For some reason, in all these days of coding, it never dawned on me that there might be a good reason all the code I was finding was oriented to playing on the floor instead of the wall. Taking my game scene and rotating it 90º is going to require me to re-code every axis alignment on every element I've had to fight to get working up until now. I'm not even sure how many things that is.
I also slammed my head against a wall last night (figuratively) for a couple hours just trying to get a natural strafing motion to work when holding shift, but otherwise have the ship turn on it's center axis without it - so you can fly normally, then hold shift to circle-strafe around something, then let go of shift to return to normal flight. Part of the problem was that the best solutions I found worked with the physics engine, not using code to force-move things. This problem is what provoked me to decide to change to a physics model, which then let the issue of my play orientation hit me so hard this morning.

The lesson here is that if you intend to make a top-down game, make a top-down game - not a top-sideways game.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

I got my ship movement squared away and like what it resulted in, nice smooth gliding with weight to it.

My next element to try and implement is a basic UI - incl. ship customization selection. I'm tempted to purchase one of the pre-made menu bundles in the Asset Store and tweak it, but it defeats the purpose of this project being a learning experience for as many elements as I can reasonably undertake.

Yesterday I spent 3 hours in Krita designing my own ships at the pixel level and had 4 of the 5 I did turn out well enough that I'd want to use them in the first draft of testing. It's remarkably difficult to get detail into a 10x15 pixel drawing (a scout ship). My basic Corvette class ship (25x75) turned out well, but my Frigate (40x100) got a little too "bubbly" and not "forceful" enough for my liking and I will probably want to redo it.

A lot of my ideas for ship design and combat are coming straight from StarSector. If I had to pin a short description on what I'm working towards right now, it would be "The combat elements of StarSector applied to a Crimsonland game play model" - essentially hectic 2D space combat with waves of enemies - but with the ability to research/acquire increasingly more powerful ships and guns and customize your ship with those using scrap salvaged from previous fights before launching. Game difficulty would need to be tied somehow to a ship power value so people didn't just slog through 43 waves of flimsy enemies with a Carrier launching fighter drones before they felt challenged. I have a very vague storyline in mind, but in my experience carnage rarely needs a big story.

*Edit: Below is the work I have done on a few ships. I welcome any feedback. These are 100% hand-drawn in Krita without kitbashing.
Image
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

This is exactly how I feel my coding in Unity is going. So many solutions I've found are stitched together bits of other people's code that it's a wonder some of it works.
Enlarge Image
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
RunningMn9
Posts: 24461
Joined: Tue Oct 12, 2004 11:55 pm
Location: The Sword Coast
Contact:

Re: Indie Game Development - First Steps?

Post by RunningMn9 »

Welcome to every code base in every company that writes software. :)

I’m in an interesting spot right now in that I have been given permission to rewrite our software from scratch for the first time since 2003 (our current solution borrows a tremendous amount of code written for Pocket PC 2003, even though it’s running on Android).

Right now it’s just me and one other very experienced engineer on it. As long as it stays that way, this will be a work of well-thought out art.

Then the rest of the team will be allowed at it, and within minutes it will be a disaster.

All the effort we are putting into defining the patterns we are using, the consistency of it all. It will survive for maybe a day. But for that day, I will be proud of it. :)
And in banks across the world
Christians, Moslems, Hindus, Jews
And every other race, creed, colour, tint or hue
Get down on their knees and pray
The raccoon and the groundhog neatly
Make up bags of change
But the monkey in the corner
Well he's slowly drifting out of range
User avatar
Eel Snave
Posts: 2866
Joined: Thu Oct 14, 2004 6:09 pm
Location: Wisconsin
Contact:

Re: Indie Game Development - First Steps?

Post by Eel Snave »

I've wanted to do game dev so many times, and I'll find a tool and then hit a wall over and over. I feel like I need to pick a tool and stick with it.
Downwards Compatible
We're playing every NES game alphabetically! Even the crappy ones! Send help!
User avatar
RunningMn9
Posts: 24461
Joined: Tue Oct 12, 2004 11:55 pm
Location: The Sword Coast
Contact:

Re: Indie Game Development - First Steps?

Post by RunningMn9 »

Eel Snave wrote:I've wanted to do game dev so many times, and I'll find a tool and then hit a wall over and over. I feel like I need to pick a tool and stick with it.
It’s hard to argue against just sticking with something like Unity.
And in banks across the world
Christians, Moslems, Hindus, Jews
And every other race, creed, colour, tint or hue
Get down on their knees and pray
The raccoon and the groundhog neatly
Make up bags of change
But the monkey in the corner
Well he's slowly drifting out of range
totemgam
Posts: 99
Joined: Sun Dec 17, 2017 7:02 am

Re: Indie Game Development - First Steps?

Post by totemgam »

Our team (Totem Games) is held accountable to each other. None of us alone would have done anything. We discipline each other very much. We don't want to disappoint our partners. It helps a lot. We divide the work into small separate stages. We try not to think about the scale of the entire project. The large volume of work is scary.

Good luck to you.
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

totemgam wrote: Sun Jul 26, 2020 2:39 pmWe try not to think about the scale of the entire project. The large volume of work is scary.
I think this is essential for smaller teams, or individuals like me. I'm not exactly thinking "whole big picture" at once, but rather "I want to get this element working" each time I sit down.
Eel Snave wrote: Fri Jul 24, 2020 12:27 pmI've wanted to do game dev so many times, and I'll find a tool and then hit a wall over and over. I feel like I need to pick a tool and stick with it.
As RunningMn9 mentions, Unity is about as good a choice as you can make right now. I've watched a few comparison videos for the "Big Three" game development engines I've found so far - Unreal, Unity, and Godot. It left me feeling confident that Unity was as good a choice for a beginner as anything else, and had longevity to make progressively bigger and bigger projects. Of the three, it seems to have the biggest and most active community and information base.

When you get into it, there's a mountain of documentation you can pour through - but from one beginner to another, the first thing you should do is download the Standard Asset Package from the Unity Asset Store and explore what's in that - then start working with tutorials like Penny Pixel and Tanks! in the learning area of the site. These projects come with all the files needed to make them run, which gives you insight into the scripting methods you'll need to use.

I don't know if it's still available, but access to the premium learning site was free for three months a while ago as a COVID-19 deal, and is also free for students to access (which I fall under as I'm taking business classes at a college; they basically just needed my @state.edu email address).

I try and spend a couple hours each night working on my project. Some nights it's easier to get motivated than others, depending on how the day before went. I've almost hit 40 days of Unity work, with just 1 day off.
RunningMn9 wrote: Fri Jul 24, 2020 11:32 amAll the effort we are putting into defining the patterns we are using, the consistency of it all. It will survive for maybe a day. But for that day, I will be proud of it. :)
This reminds me a lot of spending a lot of time getting network cabling squared away and looking good when a new facility is brought online. You go back a year later and the network closet is a spaghetti string mess no one wants to be accountable for.

My brother-in-law is a programmer by trade and has similar complaints. He wishes he could write clean, elegant code. It's just not feasible in the business environment without some kind of strict control in place. What's even better is that everyone knows clean, well commented code makes everyone's job easier. It's just not happening.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Eel Snave
Posts: 2866
Joined: Thu Oct 14, 2004 6:09 pm
Location: Wisconsin
Contact:

Re: Indie Game Development - First Steps?

Post by Eel Snave »

Yeah, I started messing with Unity. I downloaded a platformer template and holy crap, is this easy to use. I'm surprised I never noticed before.
Downwards Compatible
We're playing every NES game alphabetically! Even the crappy ones! Send help!
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

Eel Snave wrote: Mon Jul 27, 2020 10:45 am Yeah, I started messing with Unity. I downloaded a platformer template and holy crap, is this easy to use. I'm surprised I never noticed before.
I hit Unity years ago but bounced off hard. And again a while later.

I think they've made a big push to make getting in and understanding what's going on under the hood easier.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Eel Snave
Posts: 2866
Joined: Thu Oct 14, 2004 6:09 pm
Location: Wisconsin
Contact:

Re: Indie Game Development - First Steps?

Post by Eel Snave »

Same here! I ran away screaming into the night and kept looking at other engines, XNA, GameMaker Studio, etc etc.

I keep having to remind myself that idiots can make video games, and I'm not an idiot, so I should be able to do this.
Downwards Compatible
We're playing every NES game alphabetically! Even the crappy ones! Send help!
User avatar
coopasonic
Posts: 20969
Joined: Fri Mar 04, 2005 11:43 pm
Location: Dallas-ish

Re: Indie Game Development - First Steps?

Post by coopasonic »

Eel Snave wrote: Mon Jul 27, 2020 11:09 am I keep having to remind myself that idiots can make video games, and I'm not an idiot, so I should be able to do this.
I know I can do it, but I have been paid to write code since ~1992 and I find I have no interest in doing it on my own time. Maybe in retirement! :lol:
-Coop
Black Lives Matter
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

coopasonic wrote: Mon Jul 27, 2020 11:51 am
Eel Snave wrote: Mon Jul 27, 2020 11:09 am I keep having to remind myself that idiots can make video games, and I'm not an idiot, so I should be able to do this.
I know I can do it, but I have been paid to write code since ~1992 and I find I have no interest in doing it on my own time. Maybe in retirement! :lol:
If you do it right, there's a 0.001% chance you can simply retire early, a .05% chance you can take a couple years off work, and a 99.949% chance you'll make enough to afford something at Starbucks. :D
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Eel Snave
Posts: 2866
Joined: Thu Oct 14, 2004 6:09 pm
Location: Wisconsin
Contact:

Re: Indie Game Development - First Steps?

Post by Eel Snave »

Paingod wrote: Mon Jul 27, 2020 1:00 pm
coopasonic wrote: Mon Jul 27, 2020 11:51 am
Eel Snave wrote: Mon Jul 27, 2020 11:09 am I keep having to remind myself that idiots can make video games, and I'm not an idiot, so I should be able to do this.
I know I can do it, but I have been paid to write code since ~1992 and I find I have no interest in doing it on my own time. Maybe in retirement! :lol:
If you do it right, there's a 0.001% chance you can simply retire early, a .05% chance you can take a couple years off work, and a 99.949% chance you'll make enough to afford something at Starbucks. :D
I'LL TAKE THAT CHANCE

/quits job
/writes shitty game
/is going to lose house
/takes out loan from loan shark
/has to start stripping to make ends meet
/falls in love with another stripper
/run away to florida together
/get tracked down by loan shark and murdered
/die in the arms of my lover

THANKS A LOT PAINGOD
Downwards Compatible
We're playing every NES game alphabetically! Even the crappy ones! Send help!
User avatar
RunningMn9
Posts: 24461
Joined: Tue Oct 12, 2004 11:55 pm
Location: The Sword Coast
Contact:

Re: Indie Game Development - First Steps?

Post by RunningMn9 »

Paingod wrote: Mon Jul 27, 2020 8:38 amThis reminds me a lot of spending a lot of time getting network cabling squared away and looking good when a new facility is brought online. You go back a year later and the network closet is a spaghetti string mess no one wants to be accountable for.

My brother-in-law is a programmer by trade and has similar complaints. He wishes he could write clean, elegant code. It's just not feasible in the business environment without some kind of strict control in place. What's even better is that everyone knows clean, well commented code makes everyone's job easier. It's just not happening.
Shockingly, most programmers don't care. I spend a lot of free time perfecting my craft, most programmers don't. They just hack at code until it appears to work.
And in banks across the world
Christians, Moslems, Hindus, Jews
And every other race, creed, colour, tint or hue
Get down on their knees and pray
The raccoon and the groundhog neatly
Make up bags of change
But the monkey in the corner
Well he's slowly drifting out of range
User avatar
NickAragua
Posts: 6100
Joined: Mon Feb 23, 2009 5:20 pm
Location: Boston, MA

Re: Indie Game Development - First Steps?

Post by NickAragua »

RunningMn9 wrote: Mon Jul 27, 2020 10:51 pm
Paingod wrote: Mon Jul 27, 2020 8:38 amThis reminds me a lot of spending a lot of time getting network cabling squared away and looking good when a new facility is brought online. You go back a year later and the network closet is a spaghetti string mess no one wants to be accountable for.

My brother-in-law is a programmer by trade and has similar complaints. He wishes he could write clean, elegant code. It's just not feasible in the business environment without some kind of strict control in place. What's even better is that everyone knows clean, well commented code makes everyone's job easier. It's just not happening.
Shockingly, most programmers don't care. I spend a lot of free time perfecting my craft, most programmers don't. They just hack at code until it appears to work.
Where I work, and on my hobby project, I do code reviews (in fact, nowadays, I probably spend more time telling people how to code than I do actually coding) and generally don't let sloppy code through. So do the other guys who do code reviews. As a result, everyone who works under us has learned to at least pretend to write maintainable code. Having someone else look at your code before "pushing it out" is a great way to prevent unreadable crap. Doesn't get it all, but it helps.

Sometimes, though, you gotta do a minimum-impact modification to existing spaghetti code because re-writing it will take half a year, and there's no way anybody's going to let you spend half a year screwing around like that.
Black Lives Matter
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

NickAragua wrote: Mon Jul 27, 2020 11:08 pmI do code reviews (in fact, nowadays, I probably spend more time telling people how to code than I do actually coding) and generally don't let sloppy code through. So do the other guys who do code reviews. As a result, everyone who works under us has learned to at least pretend to write maintainable code.
I'm still a complete newbie, but am trying to keep my code as readable as possible.

I'm following examples online where they consistently abbreviate "Rigidbody" as "rb" or other quick, easy shortcuts. I still prefer to type out the whole name of a variable, and work to ensure the names are meaningful. One guide to coding I read mentioned that code will be read by people far more often than it gets re-written, so it's more valuable to keep it readable to human eyes. I also include comments on what each section is intended to accomplish, though as I'm getting more familiar with the functions, I'm doing less line-by-line commenting and more blocks of code comments, just over each section or if statement.

One other standard some people seem to like is to use different "prefixes" for different types of variables. They might use p_ if something is a public variable, and then just _ if it's private, and then nothing if it's a one-off. I don't like that. I've been using the same v_ for every variable so I can clearly see them in the code, public/private or not. It also means I never have to try and remember if something was initially set up as one or the other and can just type v_ to get my list of variables to choose from.

In the "development" front, I'm still ticking along, a little each day. I've established a good arena space with boundaries my ship can't pass beyond, with a camera that smoothly follows the player. Enemies still work and fire at the player, but I'm considering a shift to physics moving for them as well so they don't have jarringly different movement from the player. My first element, the layered sliding background, has actually become a problem instead of a feature and I'll need to make the easy change to a more static backdrop (it's too hard to even tell you're moving on the existing background).

As I get to a point where I actually have a thing that resembles a game, I keep having new ideas for it - typical. I didn't have a GDD worked up for this space game yet, but cobbled one together this morning that includes a pretty good couple of design concepts I liked that jumped into my head this morning. It changes the way ships are designed, but by giving the player more freedom to choose their parts over simply assigning a set of variables to each specific pre-made hull.
Last edited by Paingod on Tue Jul 28, 2020 9:44 am, edited 2 times in total.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
ManAboutNothing
Posts: 35
Joined: Sat Nov 09, 2019 10:42 am

Re: Indie Game Development - First Steps?

Post by ManAboutNothing »

RunningMn9 wrote: Mon Jul 27, 2020 10:51 pm
Paingod wrote: Mon Jul 27, 2020 8:38 amThis reminds me a lot of spending a lot of time getting network cabling squared away and looking good when a new facility is brought online. You go back a year later and the network closet is a spaghetti string mess no one wants to be accountable for.

My brother-in-law is a programmer by trade and has similar complaints. He wishes he could write clean, elegant code. It's just not feasible in the business environment without some kind of strict control in place. What's even better is that everyone knows clean, well commented code makes everyone's job easier. It's just not happening.
Shockingly, most programmers don't care. I spend a lot of free time perfecting my craft, most programmers don't. They just hack at code until it appears to work.
I did that early in my 'career', but now I definitely use more commenting in my code, inheritance and object-oriented coding techniques, and organization of code and it has made things much easier long term, for certain. I used to be proud of my 'hackey' code that worked, but now I always cringe when I see how inefficient and kludgy I was as a coder years ago.
Derek
Very part-time indie developer and full time internet business tinkerer/failure/blunderer
User avatar
RunningMn9
Posts: 24461
Joined: Tue Oct 12, 2004 11:55 pm
Location: The Sword Coast
Contact:

Re: Indie Game Development - First Steps?

Post by RunningMn9 »

I cringe whenever I look at what proto-RM9 wrote.

Some thoughts:

1) I have a friend that is like a professional code reviewer, they are invaluable to a team. He was brutal, but over time developers would actively anticipate his comments and avoid them by doing the right thing.

2) Comments. Some people will tell you that “the code documents itself”. I’ve never met a developer that believed that, that was also capable of writing self-documenting code. My advice is this: don’t use comments to tell me WHAT you are doing, use comments to tell me WHY you are doing something.

Well written code will tell me what it’s doing, but it can never tell me why you did it that way.

3) Hungarian notation. This is the stuff of religion. As a rule, I don’t like it and I never use it on my own. I work with some believers though, and so I use it at work to accommodate them.

What I would never do is prefix them all with the same letter. But at this stage I would totally support you using whatever system makes this process easier for you. That’s the most important thing, and as you get more comfortable, you’ll grow into whatever style works for you.

And then you’ll fight to the death to defend it. :)
And in banks across the world
Christians, Moslems, Hindus, Jews
And every other race, creed, colour, tint or hue
Get down on their knees and pray
The raccoon and the groundhog neatly
Make up bags of change
But the monkey in the corner
Well he's slowly drifting out of range
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

RunningMn9 wrote: Tue Jul 28, 2020 8:34 pmAnd then you’ll fight to the death to defend it. :)
I like to think I'm better than that... I like to think...

Something I try and live by is that it's not worth doing something the same way just because it's always been done that way and that change is okay. There may come a day when I start using different prefixes, or even that Hungarian Notation, to help keep variables in check and know what's what at a glance. As it stands, though, I haven't run into the need. I suppose you could say my "Code" is really a series of short "Scripts" and not hundreds of lines long.

Re: Saying why I'm doing something vs. saying what I'm doing...
I may get here too, and will keep it in mind. I'm still in the phase where I have to open other scripts I made previously to say "How did I accomplish that?" - for what experienced people could call very basic things. Right now, the "what this line does" is very important for me as I look to put pieces together. I do have some why in there, though, especially when something calls outside the script or requires a specific Unity component that may not exist by default.

There's a logic at play in Unity that I struggle with, and that is that it seems illogical at times. Minor coding grumble below...
Spoiler:
I may want to call the Transform of an object, but the object resides outside the component the script is attached to. One method Unity offers is the ability to FindObjectWithTag<"ObjectName">();

It seems logical (to me) that I should be able to say Transform.FindObjectWithTag<"ObjectName">(); to get that particular object's transform. No, no no. I need to first define the object as a GameObject, THEN look for it's transform. The "FindObjectWithTag" function simply doesn't exist in the Transform as an option, but if I click the two pieces together, it works.

GameObject v_enemyShip = gameObject.FindObjectWithTag<"EnemyShip">();
Transform v_enemyTransform = transform.v_enemyShip;

You'd think I should be able to write it out like... Transform v_enemyTransform = transform.gameObject.FindObjectWithTag<"EnemyShip">(); but that just returns an error saying Transform doesn't support that function... but when I pass it as a variable ... it does?
On the actual "game development" side, I'm changing my ship design engine, for lack of a better phrase. Previously I had conceptualized a way to have built a series of sprites and assign them attributes in categories. Those all worked together by virtue of being under a single parent object. I struggled with how to bend this around progressively larger ships, though, as you'd easily end up with larger arrays of parts. Yesterday morning it hit me that what I was trying to do was modular... so why not let players snap together modular components to make their ships. I went hunting for a 3rd party asset that accomplished this and found someone who spent months/years working exactly this problem out, and for $40 I get to piggyback that. Now I've got an easy way to build blocks of ship components and let players snap them together to form their own ships out of individual parts... then the tools can either let me merge them all into one larger part, or keep them as individual locked components. I define the components, put them in a list for players to pick from, and the players build the arrays for me. I just need to aggregate the stats and make sure the player sees that. It actually sounds easier than trying to pre-define dozens of ships, each with its own arrays and stats.

SPAZ2 did this to a degree, but they put you right down there next to the ship like you'd want to see something made out of DUPLO blocks up close and the result was pretty damned ugly. I intend to keep the view high and tight so you see your ship as a representation of all the parts without getting down into the middle of them unless you zoom in. Using this tool, players building their ship will kind of be doing what you do in Empyrion, but flattened. Shield modules, power modules, armor plates, turrets, engines, etc. Toss in a color slider and zoom out, and you've got an okay-looking 3D ship sprite that I can rock back and forth slightly as you turn or strafe. Unity's physics engine can then work with the thrust from the engines and weight of the parts to make it fly like a ship, regardless of the shape.

Right now, as it stands, I've got a very basic ship combat game with no score-keeping, menus, or options. Takes about 60 seconds to beat it.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

On backups and Unity corruptions...
My project in Unity somehow became corrupted. If I hadn't been viewing it as mostly a learning experience and had things in there more involved than sprites and scripts, I would have been crushed. As it stands, I can still access the sprites and scripts, but can't get Unity to load the overall project data. It simply crashes every time. The only thing I've really lost is the scrolling space background, which I was about to replace anyway as it no longer fit with an arena-style ship combat game. Of course, as someone who was just playing around, I didn't even consider backups. Now I have them.

On redesigning...
With the shift in game engine, I actually slowed down to catch my breath for a couple days and then hit it hard yesterday, logging almost 7 hours of time in Unity. I didn't go about rebuilding my game as I had it, though, and started with an essential menu element that became a core design concept. The menu is the ship design screen, where players will clip together parts to custom-build their ship. I first spent time trying to create a graph paper-looking background for the menu, to sort of mimic drawing on graph paper. As I was learning how to set up menus, I caught on that Unity lets you either have things move around the screen dynamically or stay in static positions. I thought it might be neat to arrange the sides of the menu to be static, like pages in a binder, and ran a spiral notebook spine image down the middle. That kind of looked janky and sad, so I contemplated a fix ... which led to me finding a free notebook shell and taking time in Krita to hollow it out and create graph paper inside that.

Now my ship design menu elements rest neatly in an 800x600 frame that looks like an open graph paper notebook. I like it. I could have gone for 1024x768 but didn't want to make that the absolute minimum resolution in the event a player had particular resolution needs. The intent, too, is that when the notebook is up the game is still shown in the background, paused. If you're on a 1920x1080 resolution, you'd still see a good bit of the game space behind the notebook.

Designing the menu reminded me of an old adage, too - "Don't let perfection be the enemy of good" - I realized by 10pm that I was trying to fine tune adjust razor-thin margins and shifting things pixel by pixel... and had to make myself stop for the night. I had something that looked good. Maybe it wasn't perfect, but I could always get back to those parts in a polish pass.

On marketing...
One of the universal marketing techniques used by even minorly successful game developers is to create a blog and try to get people interested in the process of the game's development. Keep them updated, looking, and amused and you just might get a few sales when it releases. To that end I'm going to start looking at setting up my own site to host that - and maybe stop the constant updating of this thread with every detail I should be putting there and just bump this with broader strokes as they come along.

They also post regularly in various forums to show off game progress and encourage site hits, which is something I can do every week or so while I'm working my day job. The dude who made $150,000 on the title "The First Tree" said marketing was an ongoing effort for a year before he released the game. Once I've got some screenshots or GIF images to show off, that'll have to be my route as well.

What is the game's new direction?
The player is in control of a space station that resides in the center of the arena. They can customize and update that space station over time, as the game progresses and as things unlock. The space station is the respawn point for the player's combat ship, can have it's own modest defenses and fighter wing protectors - but the player is tasked with defending it from attack while the jump drive spools up for the next stage. During this time, the player can harvest resources that may be in the area, collect scrap from defeated enemies, and engage in station maintenance and ship design. I intend to have some elements, like collection and harvesting, become AI unlocks over time so the player can increasingly focus on combat if they so choose. The player ship and station are comprised of various modules that are snapped together to create the frame, along with cosmetic parts to allow for smoother edges and less blocky looking ships. The player is in charge of all aspects of the design of both the ship and station, from adding engines to power cores to weapon turrets. The space station is intended to be stationary in the center of each map under the guise of simply being too bulky and heavy to effectively move and evade enemies.

The combat and control is physics-based, with the ship using modified Newtonian movement (no forever drift, the ship will quickly come to a stop with no thrust). Projectiles will impart some force, depending on what they are, to push enemies around - or push the player. Enemies will come in waves, and will use variations in AI - from swarming fighters to scrappy frigates and destroyers to capital ships with long range broadside salvos. I intend to hand-craft many (30+) enemy variations for players to encounter. I'm considering adding in "organic" enemies that defy the modular design at some points, which also create an opportunity to research/unlock strange tech like bioreactors or self-healing armor.

Parts are intended to be unlocked permanently through research. If the player dies (the central station is destroyed), then they'll be forced to start over, but retain any unlocks they had earned - meaning you'll be more powerful with subsequent runs until you're able to beat the game.

This is a far cry from the original "Scrolling space shooter" I envisioned originally, which became both too limiting and too simplistic for my personal preferences. The space shooter is one of the foundational first games for many developers and it'd be really hard to stand out in that crowd. I think my new design is unique enough to catch some attention from people looking for a space game that's a little different. It doesn't redefine a genre or shatter boundaries, but I think it's a good "first game" that'll take some real effort to continue with.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
User avatar
Paingod
Posts: 13132
Joined: Wed Aug 25, 2010 8:58 am

Re: Indie Game Development - First Steps?

Post by Paingod »

The least sexy part of making a video game: Menus.

I'm currently going through the long slog of learning to make my own menus, research screens, ship design windows, etc. My first menu is not a sexy beast. I'd need a graphic artist and more resources to get that. It is shaping up to be functional, though, and once I learn how to make a menu I'll be more inclined to using Asset Store menus that come pre-built with all I'm learning baked in.

I fired up SPAZ last night and was first greeted by a message reminding me it was a 2-person operation that took 2 years to make. Then as I played I realized I was making my own SPAZ clone.

My controls are already different and are intended to accommodate deliberate broadside attacks. I'm planning to limit firing arcs to force a relatively strategic play/build style, unlike SPAZ's 360º turrets. My ships are going to be modular, like SPAZ2, but top-down like SPAZ. I didn't have any zombie ships in mind, but had considered something like The Beast from Homeworld: Cataclysm and the inclusion of creatures eventually. I was definitely making a SPAZ-ish game, though. Different enough not to be called a blatant rip-off, but very similar.
Black Lives Matter

2021-01-20: The first good night's sleep I had in 4 years.
Post Reply