About bytegrove (twitter: @bytegrove)
Ludum Dare 27
Ludum Dare 26
Ludum Dare 24
Ludum Dare 23
Reaction to the theme
When I woke up on day 1, the theme I most feared would win had won. “10 seconds”?! Too specific. .. Urgh. On the other hand, that’s how I always react, I remembered.
This post mortem was written a little late, and pretty hastily. I filled it with as many pictures as I could, so that you’ll have something to look at while enduring the ramblings.
Based on my previous entries, I was determined on a couple of things (do not regard this as general advice or anything):
- Keep the scope clean and simple, center around one core game mechanic.
I do not consider myself a good game designer. I’ve been programming for longer than I’ve been “properly” designing and evaluating gameplay. Thus, the lure of writing “cool code” is always there and gets in the way of making a fun game.
- Make it 2D.
All of my previous entries were in 3D. I love programming 3D game logic. But 3D does add complexity in every stage of development. And I always spend too much time in Blender, modeling, animating and UV-mapping(I also wasn’t really keen on pursuing the minimalism angle again).
- Make use of the freshest gamedev knowledge in your brain.
During the summer I’ve been working on a 3D platformer, so all the platformer specific stuff was right there in my brain, unboxed and ready to be picked. I only needed to remove one dimension(and a boatload of quaternion math). Simplify, simplify!
- Make the game longer than 10 seconds.
I regret waiting this long for writing a post mortem. I’ve forgotten a lot of my brainstormed ideas. There was something with duels and seconds, but I never could center a fun gameplay mechanic around it. Later on I’ve seen several games using this interpretation, which is awesome!
There were also some clock ideas, with collecting the second marks of a clock as well as some idea of just making some arbitrary collectibles and refer to them as seconds(ugh).
After some thinking I wondered if I could do something cool with a rewinding ability. There are of course a lot of games already with this kind of functionality(Blinx, Braid, Ratchet & Clank, Super Time Force, to mention a few). I also wanted to keep the scope simple and by adding time rewinding (and possibly splitting timelines and paradoxes and gigawatts and what have you) I could risk ending up with something very bloated,unpolished and confusing.
So I thought about the very first Mario Bros and its single screen layout, and decided to make something similar to that.
What I ended up with in the end is a game in which you have to defend a fragile artifact from invading monsters as well as guide said artifact to a vortex in the sky. To elevate the artifact you have to rewind time (let’s call it a time defying magical artifact, mmkay?). Rewinding time also let’s you try that rewinded section of time again while your “old self” replays itself. Easy peasy.
I later realized, to my horror, during a debug session, that this was very much like the – what I thought at the time – super confusing shadow levels in Braid. I think I should go back and replay them, maybe I’ve learnt something.
Oh, and also, you can rewind a maximum of 10 seconds into the past and you have to wait the rewinded amount of seconds for the rewind functionality to reload. Which is a little too similar to what ended up being the premise of the very last episode of Futurama. Cool. Creepy.
Oh, and lasers.
Step one, global timer + rewind
My choice of working environment was my classic Unity setup. So the very first thing I set out to do was to make a rewindable replacement for the Unity engine’s time stuff.
It was easy but fun, and I wasted a couple of minutes just watching the seconds ping-pong back and forth. The simple pleasures.
Step two, transform buffer
The second step was to make some kind of buffer system for Unity’s transform component. With a 10 second restriction I could skip a lot of general stuff and make it explicitly for only 10 seconds. This buffer is read from while rewinding and replaying, and written to while playing. It was pretty cool the first time I saw it in motion. Ping-pong, ping-pong! xD
Step three, thumbnailing of level
Another thing I didn’t want to do this time around was to shove all of the art creation onto the last day. I wanted some pretty stuff in the game asap! As I didn’t really know what I wanted, I began by sketching out some rough thumbnails.
My main source of inspiration for the art was the book cover of the awesome novel by Arthur C. Clarke: “The songs of distant earth”. Which is also the inspiration for the awesome album by Mike Oldfield going by the same name.
Another source of inspiration was the beautiful grass-, wood- and dirt art in Rayman Origins. Such a pretty game. Also, I wanted to add some red hues in all that green.
Rigidbody-based Player controller
After having drawn for a while I got the urge to program some more. I began implementing the player controller. The already existing rigidbody system in Unity is pretty neat, and you can get some really nice results when using it for player controllers instead of the built-in “character controller”-body. And you don’t have to worry about collision bugs and explicit collision events later on. The workings of this was also fresh in my memory from just having implemented similar stuff in 3D, so its implementation went pretty smooth.
After I had it working I hooked the player object up to the time buffer component from before and added some state handling to switch off input and so on during replay.
I then went back to working on the level. I began by blocking out all the platforms(based on the layout in the thumbnail), and then I began working on the final art for the platforms. I made several separate chunks with grass and rock formations which I could build up the level of.
Then I got determined on making a sprite shader with lightmaps and other stuff. Big mistake. I got completely stuck with some of Unity’s weird sorting behaviours and spent too much time reading confused forum entries and lackluster documentation. I abandoned the idea after a couple of hours, and went for a simpler and built-in shader. By then my mood was at rock-bottom, but luckily this was the only real bump in the road this time around.
More work on the player
I then shifted my focus back to the player character. Based on the time I had left and not really determined on the art direction I wanted for the characters, I decided to make the player low-res and in black and white.
I figured the most importart part was to have the silhouettes there and if I got time to spare I could colour the characters. As I never got that time however, I’ve gotten some critique of the kind of mish-mashed art style I ended up with. And I understand that critique. One could counter with that the mixture of monochrome characters and coloured landscapes are “cool”. However, as it wasn’t my intention to make it that way, the result does not feel intentional, uniform or polished.
Implemented duplication of player on rewind completion
Another fun challenge was implementing the “duplication” effect after the player has performed a rewind. In the first iterations I got some hilarious recursion bugs filling the screen with player objects and crashing the game in milliseconds.
When I had all that sorted out, the game looked like this:
After I felt that the player controller and rewind-stuff was solid enough and the roadmap of permuting objects and components into the remaining game elements felt clear enough, I began working on the music.
Prior to the compo I had discovered a pretty neat music app for iOS with simple controls(perfect for a tone deaf audio noob like myself) but with enough depth to make relatively unique samples.
It’s called “Figure” and I really recommend it if you want to make some simple loops or just play around. I used Bfxr to make sound effects, I had planned to record some as well, but by the time I got around to start making sound effects I didn’t feel like I had enough time to spend on recording and editing. Maybe next time I’ll do it as (based on the critique I’ve received on my entries so far) bleep-bloop effects aren’t too well received in non-pixely games. And I can see why they might feel a little out of place.
The last ten hours went by in a blur as usual and this time they involved GUI, particles, sprite animation, a rewindable animation system, enemies with their own animation, some super quick copypaste-magic for enemy AI as well as end-game conditions.
This is a video of the resulting gameplay:
And a timelapse video based on the stream data:
Feedback and post-compo
I was stunned by all the great feedback I received this time around! Thank you all once again!
I got a lot of response of the gameplay itself, which spurred me to add some more depth to it. And I found out that when you understood the core concept of the game, the powers of the player didn’t make much sense anymore and the game could be beaten with a one second hi-score without any effort.
So in the current post compo version I’ve changed some of the enemy spawning behaviour, added extra difficulty levels and added a rewind punishment when touching enemies(instead of being invulnerable). I’ve also made some changes to the weapon, making it less effective when rewinding far, and more effective the longer you do not rewind(adding some more depth and ways to strategize).
I’m still open for more feedback though, so you’re welcome to try the post compo version if you’ve rated the original!
I had bought all the food and snacks and made all the errands and downloaded all the tools beforehand. Development went smooth.
Went to a friend that was also participating and worked there. A lot more fun when you’re more than one. Also, it was a bigger apartment with more shade, haha.
Kept it simple. One core mechanic, and a pair of sub gameplay mechanics. Kept the code and art modular, but didn’t overdo it. Ugly code? Yes. Who cares.
Very few of them. One nasty shader ordeal, threw it away.
- Game logic depth.
Some of the gameplay aspects confused me, so I didn’t catch some pretty large flaws. Fixed some for post compo. I want to allocate more time for game testing next time around.
First time I streamed, I got some positive feedback on the music I played. But other than that I guess my showmanship is pretty lacking, as I had a maximum of five visitors at a time. Maybe I should post more links to the stream next time? I don’t really know.
I think almost everyone was confused by the control scheme and the aiming system. I’ve reworked it in the post compo version, but I’m pretty sure what many wanted was soldat-like aiming, which I’ll never add.
- Mixed art styles.
I would have liked to allocate more time for creating prettier character sprites more in tune with the environment.
All in all, I had a blast making this game and it has better gameplay than my previous entries in my opinion. However, the core gameplay turned out to be yet another cool-code trap sorta. I did not pour hours upon hours on getting it to work though. Making some neat art during day 1 instead of postponing created a great morale boost. Making a 2D game made it easier to create polished art in the style that I’m most fond of, and I got more content done in the 48 hour timeframe.
K.I.S.S. F.F.S. !
Just want to give a big shout-out to you all, I’m just stunned by the amount of good constructive feedback and interesting input I’ve gotten!
You’re the best!
Just finished rendering and uploading the timelapse video of Apotheosis.
One important thing I’ve learned: It is really cumbersome to use twitch livestream data for a timelapse video. It is not a replacement for chronolapse.
Well, here it is, in all its unreadable glory:
For some context, the gameplay video:
And the entry page, of course
Thanks to all the great constructive feedback I’ve received from you, I decided to make a postcompo version of my game.
It mostly adresses the default controls and tries to fix some of the collision bugs.
If you’ve already played and rated the original entry, give it a go at:
This was a really fun Ludum Dare! I wasn’t so fond of the
theme but I managed create a pretty enjoyable game I think.
The development process was pretty stress free and rewarding as well,
for which I’m glad.
I’ve published builds for Windows, Linux and OSX, and there’s a web version as well.
The game can be played with keyboard or an XBox360 gamepad.
The controls are a little different and I can understand if they’re not
to everyone’s liking(they’re sorta like Cave Story).
All feedback is greatly appreciated!
I’ll probably write a post mortem in a couple of days.
But first there are games to play! \(◔‿◔)/
“Apotheosis” – entry page (write a comment and I’ll try your game out):
I managed to finish my Brad+Mario Bros combo in time!
Web, Linux, OSX and Windows builds available.
So much to do, so little time…
Watch the stream of my pretentious Braid-wannabe-game at www.twitch.tv/bytegrove
…But they’re soo much fun to make!!
Day 1 progress:
I didn’t have a lot of viewers today, but I’ll be streaming more
tomorrow at: www.twitch.tv/bytegrove
A lil’ thumbnail of the overall atmosphere I’m aiming for.
I’ll be streaming at: twitch.tv/bytegrove
Watch me make a fool out of myself!
I’m in for my fourth LD.
I’ll be using Unity and Visual Studio as usual.
For graphics I’ll be using Photoshop and/or Procreate.
For music and sound I’ll be using inudge, Figure, bfxr,
Audacity and maybe a microphone.
Blender will be used if I’ll be needing any 3d assets.
I’m going to try to have a stream going this time around,
I’ve now added OSX and Linux ports for my entry: Astral Offset!
With Astral Offset I tried to experiment with the idea of representing the game world in an alternative minimalistic way, alongside the normal one, and also allow for some form of interaction between the two.
I also put together a small gameplay+timelapse video, enjoy:
Minimalism. Quite a tough theme in my opinion. I tried to come up with an idea that utilised it in gameplay as much as possible, instead of just applying a minimalistic graphical style. After several scrapped ideas I decided to create a game in which two worlds are visualized at the same time,one being in 3d and one being simple and minimalistic 2d, and in which objects in both worlds could travel between these worlds. I thought about making some kind of puzzle game in which the player could “construct” the 3d world from the 2d representation. But as puzzles are not my strong suit, and feeling the amount of work grow too fast, I decided to condense it down to having an enemy which could travel between the worlds and which had to be destroyed using an object which could be “sent” to the 2d world.
The way I solved it was to have the world in which the player exists to behave a little like the later Animal Crossing games, ie. the world curves abruptly near the screen and in the horizon. While the 2d world(the astral plane) behaves a little like Tetris, and when a 2d representation hits the 3d world it materializes. The player can not move to the 2d world but instead has its position in it represented by a sun-like circle. The player can then use the circle as a marker to interact with the 2d world.
I’m still fond of these ideas and concepts, but I’m not sure how wise they were for me to try to realize in 48 hours. Lots of experimenting were done and a lot of stuff were scrapped, my priorities on what to spend more time on might have been a little skewed as well. And I feel that there are still a lot of stuff missing from the final product, especially in terms of tutorials and visual feedback from actions in order to ease the player into the gameplay. I do feel however that it’s a lot more interesting than my previous entries.
If the game and the concepts seems interesting, give the game a go and tell me what you think!
(Timelapse and more ports coming soon)
Also, there are evil potatoes in the game.
This will be the third time I participate in potato.
I’ve grown quite fond of Unity so it’ll be my potato of choice this time around as well. I’ll keep Chronolapse running as usual, and I’m thinking of having a stream this time around as well.
Potatoshop or Procreate along with Blender will probably be used for graphics, and Visual Studio for code. All sounds will be recorded with a potato for best quality, of course.
I’ve compiled a timelapse video of my entry; “Primordial Soup”.
This was my second LD, and this time my idea was a little too ambitious for me, and I got stuck with a lot of frustrating bugs the first day.
However, I more or less managed to tie the features I had by the end of day 2, together.
The game might be a little finicky to play though, so I made a gameplay video as well to
showcase what features I managed to implement.
Thanks everybody for another awesome Ludum Dare!
I’m looking forward to the next one!
I knew this idea was a little too ambitious (for me at least) from day one, but I got stuck during the brainstorming and wasn’t able to come up with any other idea.
Anyway, I somehow managed to put everything together, smash at least some of the more annoying bugs and add a thin layer of polish.
The game; “Primordial Soup” is some kind of half-done-roguelike-like. Explore randomly generated dungeons, fight randomly assembled enemies, and steal their body parts and attach them to your little fish-person. O.o http://www.ludumdare.com/compo/ludum-dare-24/?action=preview&uid=11939
I’m going to upload a timelapse and write a post mortem in a couple of days, but now I need to sleep…
Finally starting to get somewhere though.
The player can build upon its avatar using a building block system, player input is signalled through all blocks from its root. The blocks have specified connection points, so the building system is not limited to blocks. In the screenshot below the player has two heads, both shooting bullets when space is pressed:
I’m in! LD 23 was my first try. It was really fun and it felt like I learned a lot! I managed to finish my project then and I got a lot of good feedback. However, I might just have overdone the shoehorning, and after having played a lot of really clever entries, I’ll try to focus more on making something more theme-related this time around.
I ranked fifth in the graphics category last time, and a lot lower in all the other categories. So now I know what I have to focus more on, let’s see if I can manage to do that.
I’m planning on using these tools:
Unity 3d with c#, Visual Studio 2010, Photoshop/paint.net,
Blender, inudge, bfxr, Audacity, chronolapse