leverman introduction java platformer fluid jbox2d ecs
A bit about myself
I am in the start of my thirty´s and do programming since about 20 years. In these past years i have created multimedia applications, tons of websites, ui applications, client/server applications, technology demos and several unfinished game-prototypes. I started with Basic on the C64 continued with QBasic and jumped straight into Delphi - a object oriented programming language based on pascal, which most of my past applications are based on. Of course i have learned other programming/script languages as well, like C/C++, Java, PHP, Python, VB, C#, Lua. Nowadays i code in Java because i use all days at work and like it, because its reliable, fast and are strong to build complex software designs. Sometimes i miss using pointers, memory allocations and all that low-level shit but i can live without it ;-)
In my childhood i have drawn "Games" on paper which was played by me using imaginary and fingers only. At the time i really wanted to bring those ideas to "live" and create games out of it, but i was lacking the skills to do it – i was really young and unexperienced. But a good friend of mine was somehow inspired by me and started to draw this stuff too, i even got him interested in PC, video games etc. But unfortunatly i lost all my drawings from that time and could never recall that ideas again – it was just lost.
Many many years later i visited that friend of mine and we talked about good old times while playing video-games and i found his own drawings accidentaly. I remember saying to him: "You know, one day i will bring this ideas to life". But even at that time, i still was not that skilled in programming to create such games. This was the point where i knewed that i wanted to be a professional programmer and thats what i am today.
Today in june 2014, i am starting to create this game i am talking about right now. Starting by creating a design-document and create my/the thousandth game-engine...
Yeah i know, everyone starts by creating a game engine first and realize later on – its not that easy after all. So experienced ppl just say, "Dont create your own engine, its a waste of time - use unity or whatever". But such comments just bounce off me, because i am a person who want to create everything myself, understand everything what happens in the background and have control of it - except for some low-level stuff like opengl, audio, input etc. I even realized that using a existing physics-engine is better than writing one myself and yes - i have written my own physics engine, so i recognized that!
Why doing a journal here?
Firstly, i think this will boost my motivation to work on this game.
Secondly, this may be a good reference for me or others in the future, who like seeing a game from the near start to the end.
Third, to get some feedback and may listen to experienced ppl ;-)
About the Game
Damn, that was a really long introduction and i havent written anything about the game itself at all -.-
Okay here we go:
It will be a physics-based platformer which makes heavy use of fluids and gases. There will be no enemies at all, but tons of traps! So fun is sure to follow ;-) The main goal for the player/hero will be to reach the exit for every level. Like most platformer the player can jump, fall and die. He will have live -and health points and also some items to pass unpassable areas in the future.
Levers - hence the name "Leverman" will take a major role of this game, because levers will activate and deactivate something.
The game will be written in Java using the LWJGL Library and the JBox2D Physics-Engine only. The engine-architecture will be designed to support Windows, Linux, Mac and Android as well. The time will show how it will become and if the JVM is fast enough to handle that scale of that game, but i think the only bottleneck may be the GPU only. If not i will recreate that engine in C++ or just use Unreal Engine 4!
Lastly i can show you my initial progress of the game and engine with a fully working Entity-Component-System, integrated physics, basic rendering and some jumping rectangle . It taked me about effective two weeks (2,5 months) to create this. Hope you like it.
Stay tuned for updates.