It’s done! It’s ready enough to be shared!
It’s not a full game, but I’ve put togehter a couple of levels to demo the features, and I think it’s pretty fun!
Keep in mind that I’m NOT a good level designer, and intensity is set to developer difficulty.
The game has a few known bugs and glitches, and missing a ton of polish!
But this was a brief summer project together with my brother, so count this as a demo of a milestone. Good enough for what we set out to do!
Very excited, because when it comes to platformers, reaching this point of the project can take a really long time. But we got here with a lot of time to spare!
Platform physics in place
Player controls and physics in place
System for enemy and interactable behaviour in place
Music and sound is working
Even have basic localization in place (because my kids only reads Swedish, but I have friends who only reads English)
Restarting the game, score, lives, game over in place
Even have a debug menu in place
Started second milestone
We have the basic building blocks in place, but no good way to actually place them. Next step is a simple level editor.
Level editor progress today
A struct to represent all level data in the game
Write all data to a text file
Read the text file and populate back all the values
So, have basic serialization/deserialization in place. Good progress today as well!
Note: we’re just getting started - everything is supposed to look like shit at this point :-D
Huge progress today!
Player physics (iteration 1) implemented
Running, sliding, jumping, falling
If falling too far, he screams “FAAAAAAAAAN”
Implemented quick IMGUI-framework + auto layout
Implemented in-game debug menu
Toggle player physics
Pause/unpause the game
Debug mode to not die (not implemented yet)
Toggle languages
Also properly implemented “toggle sound”
This is amazing progress for about 5 days work! Almost all the major pieces are in place to run around now. What’s missing is the ability to die, which I’ll handle tomorrow (work in progress).
It puts me in a great spot - timewise. I’ve got a full 9 more days before my deadline of a playable demo, and I have one more, really big feature left: a Level editor. But 9 days for a level editor and put together some levels seems absolutely doable.
Of course, the game also lacks a ton of content. Enemies, interactables and such. Adding more stuff will also be part of those 9 days. But I need a level editor before I can properly place them (because my random layout is just a quick way for me to test basic functionality and not meant for prime time).
Note: we’re just getting started - everything is supposed to look like shit at this point :-D
Progress
Render ground chunks with variation (see below)
Implemented first interactable object
Objects can now “talk back”, so my interactable can tell that it whish to give the player score
Objects can mark themselves ready for destruction
Bug fixes in platforming physics, so we now can detect if you are grounded or not
Player animations adjusted, walk on ground, jump in air, and so on…
Started implementing player physics (work in progress)
Ground chunks with variation
In order to avoid repeating patterns, I implemented a variant that will take a bunch of ground tiles, and randomly place them based on spatial mapping (i.e. to get a psuedo-random number based on x and y position). In my sample I used 6 different dirt tiles, this is how it looks:
Dirt chunk with variations
Pressing shift will render in debug mode, where you can see the distribution of the dirt tiles more clearly
Debug view of the same section
And at the end, I put a grass tile on top
Then put some grass on top
Interactable
Also did basic implementation of an Interactable object to battle test the system. You can now collect these pickups, they will play a sound and increase your score.
Me and my brother has decided to - for the first time - try to collaborate and see if we can make a game together. We will attempt to make a sequel to my first “real” game, Super Bobby World, originally released in 2003 (i.e. 22 years ago). The image above is from that game.
This time we’ll do it in c++ instead, and with a very limited time scope… so we’ll see how it goes. Let’s keep a short dev log about it here to keep track.
Done so far
Mostly the boring boiler plate and setup-stuff:
Creating a window, handle input, game loop (using SDL)
Load and draw bitmaps and colored rectangles
First pass of custom platform physics (collision detection and response)
Drawing text
Playing music and SFX
Very simple screen management
Not much to look at yet, but still managed to get a lot of the nessecary stuff out of the way.
And remember that you can play the original game here, free and in your browser: