Posts Tagged ‘mining’

Post Mortem: PEDESTRIAN MINING CORPS

Posted by
Sunday, April 26th, 2015 6:21 pm

It’s been about a week, so here’s a retrospective on my LD32 entry: Pedestrian Mining Corps. It was a nice break from a couple of other projects I’m working on.

What It Is

Box art for Pedestrian Mining Corps

Pedestrian Mining Corps is a one-button game about launching pedestrians into space to push asteroids back to Baby Earth by jumping on them. You’re working against the clock and asteroids’ gravity wells to get as many rocks harvested as possible.

It’s built in Unity 5. It’s a jam entry, so I used some premade assets:

I recorded the stomping sound with my laptop’s crappy built-in mic because I didn’t feel like dragging my gear out, and massaged it in Audacity. Planet and asteroid sprites were created in Inkscape.

What’s Great

dev_gameplay2I finished. I got the thing done. I had to use the whole submission hour on Monday night, but it came together. I wasn’t sure it would. I’ve failed four of the last five jams I’ve attempted, so it felt good to get across the finish line.

I’ve been doing a lot more game dev this year than previously, and I’m better for it. I was able to quickly build the UI and tweened transition effects using techniques I’ve used before. I used the awesome Unity 5 audio mixer system for audio transitions and a low-pass filter to keep the music rumbling after the game ends. I’m pretty happy with the nearly-free polish I got from habits and reuse.

I learned more about Unity’s animation system. Those little jumping animations were pretty easy to make and their sound effects are triggered by animation events. Planet and asteroid rotations use the animation system, too.

I’m pretty happy with the 2D/3D split art style, though it didn’t go over well with most players. It was borne of a limitation: I don’t know how to texture 3D objects. More about that below. I’m happy with the way the menu looks and works, the way the game looks in action, and the way the score/replay wrapup presents itself. Oswald, the button font, is one of my favorites; I’m using it all over the place in another game I’m working on called Disc Jockey Jockey.

I like the choice players make between sending pedestrians to new asteroids or putting more pedestrians on the ones already coming in. More pedestrians on an asteroid makes it (subtly) move faster and take a more direct route to Baby Earth, but it also has an effect on your efficiency. I usually spend my early game bringing in as many new asteroids as possible and the last 20-30 seconds making sure everything that’s on its way gets home under the limit.

What Wasn’t Great

components

In code, I tried leaning into Unity’s component system this time with lots of tiny behaviors. This was a bad idea, especially when tweaking game feel. You quickly lose track of which object has which component on it, or which of half a dozen components is applying a force at the wrong time or playing a sound when audio should be muted. Or you just need all those components to talk to each other because they’re dependent on each other’s state. I’m much happier with a manager object that’s pulling the strings. Maybe individual objects can have small behaviors attached but controlled at a higher level where I can see everything at once. Let the manager subscribe to events published by components and consolidate coordination and settings.

I mixed 2D and 3D because I don’t know how to texture 3D models. Not even cubes. The only 3D software I know how to use is OpenSCAD—best-suited to mechanical models—which has no concept of UV coordinates. I think the resulting look is playful and silly, but most players just think it’s incongruous. A voxel design would probably work better. I wish I’d known about Magica Voxel before the jam.

I worked alone, which is great for creative control and kind of bad for motivation/focus/workload. Pairing up with someone more accustomed to working in 3D would’ve helped.

Scrapped Plans

Some things I’d planned but didn’t implement:

  • Multiplayer. The framework is there; pedestrians have a “homeworld” they push toward, so it’d be easy to reassign that to another planet.
  • Pedestrians yelling their names on launch. I built a whole system to scrape the filesystem for audio clips at editor time and generate random first/last name pairs, but didn’t have time to record the voices. I think it would’ve been funny to hear. Ended up being a waste of time.
  • Different asteroid/resource types. I’d planned to maybe require a certain number of different resources to be collected under the time limit to advance to the next wave. Or even have antagonistic forces like an enemy planet or spaceship that would attack, requiring pedestrians to take it out.
  • Pedestrian classes. The original game concept was more like tower defense, launching pedestrians out to stick to planets where they could attack incoming enemies. I think classes could still work, with certain class combos producing more minerals or fending off attacks.
  • Credits. There’s a hidden button on the main menu that goes to a dead credits screen I didn’t have time for. That might be the one thing I go back and add before I consider the game “done”.
  • Tuning. I need to play with the push force, steering force, and asteroid spawn rate. They could all be improved. Playtesting would’ve helped.
  • Networked high scores. I always put this on the nice-to-have list, but it’s probably never worthwhile. They’re too easy to subvert and they mostly make you feel bad about your score.

ᴖᴥᴖ

Thanks for reading! I’m having a lot of fun playing and rating all of your games. <3

Please try Pedestrian Mining Corps if you haven’t already. It plays on the web* and it only takes a few minutes.

planet1

Pedestrian Mining Corps

* Unity webplayer; Windows/Mac, any browser but Chrome. Lin/Mac/Win downloads also available.

Ghost Digger

Posted by
Monday, December 8th, 2014 6:51 pm

We have just submitted our first Ludum Dare game! It was a great experience and it will certainly not be our last LD.

Play Ghost Digger

Ghost Digger

In the Black – Post Mortem

Posted by
Wednesday, April 30th, 2014 5:05 pm

Ludum Dare 29 - Hybrid Mind Workspace

Background

This was my 6th year doing Ludum Dare and I had a really great experience. I made a game called In the Black–which ended up being very different from the kind of games I’ve made for Ludum Dare in the past.

In The Black - TitleI decided to go all out this time and setup a livestream of my development over on my Twitch TV channel. It was fun having different people stop by during the weekend and say hello and chat a bit. Plus, it helped make me more comfortable with being on camera–which I really don’t like all that much–it worked out pretty good! I also recorded a timelapse video of my development where I compressed 30+ hours of development down into minutes.

Since I have been pondering game design ideas involving stats and narrative recently, I knew I wanted to make a game that made use of something similar. These kinds of games are a new genre for me as a creator, but I’m mostly pleased with what I ended up with at the conclusion of the 48hr competition.

Hybrid Mind BanjoOnce the theme Beneath the Surface was announced, I knew there would probably be a lot of games involving mining or digging. I wanted to do a game about mining as well, but take an approach that I felt would likely be fairly unique. I decided that the role the player would perform in my game would be managing a mine from afar through dialog choices, rather than have them actively going down into the mine. In fact, my game was going to display the action entirely in story.

I determined that the game would take place in a small mining town placed roughly in the old west. This would also fit well with me wanting to write a banjo tune or two for the game. I play clawhammer banjo and have wanted to feature some of my music in a game for a long while now. That worked out really well.

The premise of the game is that you have been sent out west by your boss to get the town’s failing mine operation back up and running profitably. You have 10 weeks to earn $10,000–or else! The fun of the game was designed to come from wrapping the simulation stats in narrative and choices. So, even though you are tweaking numbers to achieve a profitable balance, you’d feel more like you were making story based choices.

What Went Right

I had my game idea pretty early on. That is always a major benefit in a short competition timeframe like Ludum Dare. I was able to quickly create a design document that detailed a first pass on the stat system. Initially the game would track stats on three things, the mine, the workers, and the manager (the role of the player.)

In The Black - Screenshot3The mine attributes were profit, danger level, and efficiency and the worker attributes were fear, happiness, and unrest. Lastly, the attributes of the manager were going to be greed, compassion, and ruthlessness. Each week of the game, the player would get to focus on a particular area to make their choices about how to manage the mine.

I was going to use either Flash or Unity or this game. They are both amazingly fast to prototype in. Largely my decision to go with Flash had to do with wanting to make everything from scratch for the competition. Old school style! The plugins I use a lot of in Unity are not free and I wanted to be able to provide the full source for my game, not a hobbled version. Using Flash solved this for me as I could create everything I needed.

Since the game was going to be mostly text, I knew I had a lot of time saved up that wouldn’t be used on art. That was going to be needed because I’m fairly slow at writing still and I labor over it.

The basic dialog system and main game flow were finished pretty quickly during the first full day. I knew how all the infrastructure would work. The tech was finished! Now I just needed to finish the design of the actual stats and how the player interacted with them.

With only 6 hours remaining in the competition, I was almost ready to admit defeat and throw in the towel. I can’t believe how close I came! I talked myself down though and compromised by taking a walk to get away from the computer. Even though I only walked for 30 minutes or so, and even though I felt I had no great epiphany during my walk, when I returned to my workspace I suddenly saw what I had to do in my mind’s eye. I came up with a brutal triage plan and changed the design by cutting almost half of the existing system out! This simplified and clarified things greatly and I was able to get the system coded and working well enough to actually play and balance it. Finally, I was on the right track!

As far as music goes, this was the easiest time I’ve ever had with the soundtrack on a Ludum Dare game. I’ve been playing banjo about eight years now or so and have never actually used any in one of my games. I play a lot though and it is almost always my own original instrumentals. I just love to compose tune after tune. All the time spent coming up with tunes on the fly made it fun to sit down near the end of the competition and create a tune I felt fit the old west town quite well. Here is a video of me playing the main soundtrack from the game just for fun!

In The Black - Banjo

What Went Wrong

As I mentioned above, nailing down the specifics of the actual gameplay stats proved incredibly challenging. As long as the stat design was foggy, I couldn’t effectively code what was supposed to happen. You need to understand the system you are trying to represent with cold hard logic after all! I was struggling with the scope of designing and balancing three areas (mines, workers, manager) that had three attributes each. Plus, I wasn’t certain as to how the attributes affected the other areas. I was worried that some of the stats were actually just inverses of the others rather than uniquely on their own axis.

In The Black - Screenshot2I got held up a long time by having profit be a stat. Initially I had wanted to make the game more abstract and so instead of tracking money and expenses (which yields profit) I attempt to track just a profit type variable. The problem with that became apparent for most of the prototype’s development. It just didn’t make sense in my head. I kept wanting to think of it as a usable number. It took me too long to realize I needed to change this.

I ran out of time on wrapping as much of the system in narrative. I wanted to further obscure the number in the game beneath well written dialog. I’m happy with what I managed to wrap with words, but I could have done much more.

I ran out of time to add more random events and flavor text based on game state. I really wanted to have a chance to incorporate more random events that provided choices for the player to respond. These events–and how the player handled them–would further shape the mine.

Conclusion

I’m very happy with the game I got out of this Ludum Dare. I also know that I came so close to quitting, yet somehow held on and turned it around into a game that was still very playable–even if it wasn’t my original full realization. It seems that people have been really positive about it so far too with the majority of the players being able to successfully complete it! It is also encouraging that the players have been really enjoying the music too!

Here is my Ludum Dare game page for voting and feedback. If you leave me feedback, I will leave you feedback on your game! Thanks for reading and playing.

In the Black – The Company Office

Posted by
Saturday, April 26th, 2014 6:25 pm

The Company Office

The dialog system is coming along pretty nicely. I’m trying to get over my fears about writing. It is the thing I’m always most nervous about and the slowest at. Ludum Dare can be good therapy in trying things you’re scared of though so I’m just going to plow on ahead.

Each one of those dialog options slightly affects your personal stats. This is early in the game, but every little action shapes your history and relation with the town.

Bored or taking a break? Stop by my livestream and say “hello”. I could always use a friendly distraction–even during the compo! 😀 It’s been nice having folks drop in and out.

Well, back to work!

In the Black

Posted by
Saturday, April 26th, 2014 7:36 am

In the Black

So I spent a few hours last night thinking about the theme and how I might make a game that’s a bit different from what genres I normally work in. For this game I’m going to be trying some narrative elements and trying to get some stat driven gameplay working.

For In the Black, you play as the newly appointed manager of a failing mining company town. You have been tasked to get the mine profitable again in a fixed number of weeks. How you choose to do that will be up to you. Do you go for profits at the cost of blood? Can you find another way to balance the worker’s safety despite your bosses greed? Will your own greed take over? I want to let the player answer these questions and more through a variety of dialog driven events.

I will attempt to track some different stats:

  • There will be stats on the mine itself, like “danger level”.
  • There will be stats on you, like “greed” and “compassion” perhaps.
  • There will be stats on the worker population too.

I’ve still got to define these systems but I think I can do something with this that might be interesting.

I’m going to be using Flash because I realized that some of the Unity plugins I use aren’t free so I couldn’t distribute them with the source. I’ll be writing everything from scratch this way using Flash.

So, that’s what I’m working on for this Ludum Dare. I’ve got my live stream up and running at http://www.twitch.tv/hybridmindstudios/.

Stop on by and say “hi” if you’d like!

The first Screenshot

Friday, April 25th, 2014 7:43 pm

screen1

Pixel-Style Mining Game.. in development 😀

LD10 Final Entry: Short Fuse

Posted by
Sunday, December 16th, 2007 1:50 pm

ld10 screen 8

This is it! Pretty darn complete. Download here: shortfuse.zip (1.1mb)

I tried making music, and that was a bad idea, so I didn’t put it in. Love those SFXr sounds, though!

Note: If it runs way too slow, or just if you prefer, you can use the command line argument “opengl” to run it in openGL instead of directX.

[cache: storing page]