KERNEL is an action game about left-hand right-hand coordination.
You can play and rate it Here.
How I made it
- Idea Generation: “You only get one” is a rather general theme. It can fit into nearly every established genre. So, I decide not to care too much about the theme and just make a game that I want to play. I usually design games by asking “what if”s, “What will happen if you only get one player with a 2-player co-op game?” Will it be fun? I don’t know, so let’s prototype it quick and dirty, and see if its fun.
- Tech: I use Unity 3D 4.3 because I want to try it’s new 2d features and learn more about Unity. I found it quite neat, but it has no tile-map support, and the default sprite shader did not support lighting.
- Collision detection/response: IMO one of the most confusing part of Unity is its physic engine. In Unity, if you want your gameObject to be handled by physic engine, you must attach a rigid-body component to it, or the OnTriggerXXX() will not be triggered. But what if I just want to detect collisions, and I want my objects’s motion controlled by my own code instead of controlled by the physic engine? You still have to add a RigidBody component to your gameObject, and set gravity, drag…etc to zero. Enabling the “IsKinematic” will make your game object outside the physic pipeline, so those OnTriggerXXX() event callbacks will not trigger. It’s useless to me, so I decide to implement my own collision detection/response scheme using Unity’s built-in functions. Since I decide to make a rectangle-based, non-tile-mapped level, I should only implement rectangle to rectangle collision. I used the “Linecaster” in Unity to approximate the 4 edges of a rectangle. See pictures below:
The blue thin lines are where collision detection happens. To prevent double collision at one side, I made the lines shorter.
- Level Editing:
Since I have no mood for opening photoshop and draw some thing, I decide to make the level solely by primitives in Unity.
And because of the collision detection, I must only use rectangles! So, everything in this world is consist of rectangles, including characters and texts.
The resulting level looks like this:
Somewhat like a snake, isn’t it?
In order to make the graphics more pleasing, I use a bloom post-effects provide by FXLabs plugins (I have to use it since Unity Free does not support RenderToTexture.)
Here is a before-after picture showing the “neon-cubes”:
What went right?
- The Gameplay: The gameplay mechanics shows some potential and IMO it’s quite fun.
After the compo many new design ideas emerge in my head based on this double-control scheme. I will polish more and put them in a new version if I have time.
- Graphic style: The “neon-cube” style works quite well as I expected.
- Level design: I think the length of the entire stage is quite suitable for this compo. It last about 3 minutes and a half if you did not die any once in this game. And personally I like how I present the title : )
- Amazing feedbacks: People here are really awesome, they give constructive feedbacks! I really thanks anyone playing my game and commenting on it! For example, one person point out that this game is natively co-op, and if you play this game with your friend, it will be fun too! I like this comment very much : )
What went wrong?
- Control: The control is a bit floaty, the friction is too low. It made this game very hard to do precise movement.
- Difficulty: Because of the control, easy stages became really difficult.
Details: There are still many bugs and improvement I have no time to solve or polish in this compo session:
1.After death, the collision is not well handled because of state switching. This will make the players happens outside the wall.
2.The ending part is not complete, it will looping levels.
3.Visuals are not polished enough.
4.Did not complete the narrative part:
Initially there’s a story of this game. The main character is called “KERNEL”, on the contrary the level itself is called “SHELL”, it’s a huge spaceship. The gaming process is to control the kernel to reach the core part of the SHELL and injecting the control program to it’s core. In the end, the level will transform into a huge snake like spaceship and fly away into far galaxy…blah blah. Anyway, I did not complete that : (
- Learning a Engine during compo session: Frankly speaking I did not use Unity very frequently and I think I still not familiar with it enough. Next time I must ensure that I know all the basics of Unity before participating in a game jam!
This is my first time writing such a long post in English. Thank you everyone for tolerating some grammar/spelling or collocation error in my post. During this LD I learned very much and I really enjoy this. See you next time : )