Update #011 - 08/04/16
Took a little time this morning to jot out some notes on how to structure my Kickstarter project page. Looking at some other projects I like, I've distilled what I think is a concise layout that gives enough space to get people excited over the little details.
I took inspiration from some fantastic projects, including:
- Mable & The Wood - live now, please show your support!
- Invisigun Heroes
So, without any more fanfare, here's my first draft of my planned layout for the project page:
Kickstarter Story: Draft Layout 1
[Animated header image, including game logo]
Catchy 1 paragraph description of game
[Animated GIF of gameplay]
Bullet-point summary of key features:
- Key feature: Description of this key feature
- More Key features: Everything moves super quick and is super sweet
- Other cool things: Yes this is cool too
Illustrations of specific interesting mechanics with explanations
State that the game will be PC only to start with, others possible via planned stretch goals. - Big button: "Support on greenlight!"
SMBCA worlds (needs a catchier title)
- many small gifs of cool dudes
- embed soundcloud links, bio on sound designer
- different environments+scenery combinations, secret rooms
Influences and Inspirations
- A short paragraph about other games that inspired this project.
Short paragraph explaining that this project wouldn't be possible without extra help, and how it lets me realise the game as best as possible. etc
- Pie chart
- Explanation of where the money will go
- A pretty list with nice pixel art drawings representing each tier. Image of reward if physical
- reward comparison table
I've also been mulling over the idea of tweaking the rewards that I could give people, and have been thinking that maybe some smaller rewards are worth considering too! I also like the idea of perhaps badges or mouse pads with custom designs.
So currently, ideas I've got for rewards are, in order of expense:
- Be in credits, Wallpapers
- Game / Early bird reduced price
- Access to Beta
- Hand-drawn postcard
- Small Poster
- Big Poster
- Design a mob
- Design a mini-boss
- Design a boss
I think adding these additional options around the lower tier levels might be helpful to reduce the price difference where possible, and get extra physical items in the lower end.
Really interested in what people think about my Kickstarter ideas so far!
Okay, so this wouldn't be a SMBCA blog post without a load of crazy GIFs. So, these are for you:
As before, these are experiments for potential use in my upcoming trailer! I can't to see how that comes out!
Human-readable data Storage (what)
Alright, last but not least, I was asked earlier about how I generate the maps in the game, so I thought I'd share a few notes about how I do it! I think it's conceptually quite interesting, as I designed the way I store the data about the mazes to be a readable represention of that same maze.
The map generator is a little complicated - I use arrays liberally. Firstly, I have a big 2-dimensional array, in each cell there is a single character representing either a wall, or a room, or a corner. It is structured something like this:
So a 'O' character represents a room that the player can enter, '|' is a vertical wall, '+' is a wall corner, and '-' is a horizontal wall. When I'm drawing the maze, or creating the doors to a room, I look at this grid to see where the walls and doors should be.
I chose a quite visual format so that debugging the array would be easier, I can just dump the contents to a text file and see what is there, and it should represent a maze perfectly. I literally couldn't recommend this approach more, it has been extremely helpful being able to just print the output to screen or to a log.
When I make a randomly generated maze, I pick a random length and width of array to use, and fill it full of a maze template like that above. I then pick a random point in the maze to start from, and then work my way around it, adding and removing walls to make an interesting structure that fills the grid.
The end result might look something like this:
So, still perfectly human readable, this time the space characters mean that there's a door there that the player can move through.
Now, the great part of having this all loaded into arrays and generated at runtime, is that if I ever feel like changing the structure of the maze in-game, it's a piece of cake! I can just write a different character to the array and then when I come back to this room it will have remembered the state of the room! So I could knock out a wall at the top left corner to let the player move down, just by changing my array to the below:
I use arrays of various types for lots of other things too, such as storing the content of each room, and the list of enemies present in each room, and some information about those. These are generated randomly at run-time too, so the player should have a different experience each time. I've not quite nailed down the routines that decide how each room should be populated, but the room save/load mechanisms are there and functional, and there's a placeholder 'fill-the-rooms' function.
Hope that was enlightening! I'd love feedback on anything and everything, catch me on Twitter or make a post at the TIGSource forums if you'd like to start a discussion! Or, you know, you could comment here if you want, whatever floats your boat