JAJAJAJA!
~~~ EPIC THREAD REVIVAL TIME ~~~
JAJAJAJA!
* shameless bump *
Hey guys, I think I won't do Touhou-like shmup. :derp:
Well, as you may see, I've built a simple platform for 2D sprite-based games. When writing the code, I've kept in mind possibility of adapting it to other types of gameplay, though main target was still danmaku.
Now, building just another shmup doesn't seem that exciting for me. Instead, I'm going to switch to RPG-like 2D shooter. I've never seen such type of game before, and I don't know proper name of the genre (though I won't wonder if you point out similar already done game like this). Basically, it is like Unreal [Tournament] on plane, where dodging factor is raises more, thus introducing some concepts from shmups, but overall action is still intended to take place in conventional game maps with space layout where player makes his path like in ordinary first-person things.
I may try to finish basic danmaku code and make a couple of example stages for reference if you ask. However, I won't extend it to full Touhoi-like game.
Still surprisingly actual. Well, aside from "I've built" bit, I'm still building...
it.
What this
it now is my new full rewrite from scratch.
The engine consists of two parts: native code, written on C++11, and interpreted one, in my beloved little cute Lua.
Native code is currently intended to compile on whopping two platforms: Windows/x86 and Android/ARMv7 (basically 2 my computers lol).
The native part handles everything that Lua may be bad at, and probably something more. This includes:
- setting up a window and receiving messages from OS;
- graphics system: for Lua side, it exposes a nice set of objects like Texture, Shape, SpriteField and others, when rendering, they load OpenGL with useful work;
- resource system: as scripts are concerned, there is an abstract "IO" concept which is an address space which we may read from and write to, there is a "File" implementation of this concept, there is a "Package" format which takes a single large IO and turns it into a resource database, providing each one with its own pair of IOs and some metadata, there's also a little PNGReadTask because libpng's API is horrible and boundaries are good;
- math library, which now is still empty.
One feature that I'm proud of is that script execution (essentially all application/game logic) is done in parallel to rendering in a different thread, and the game doesn't seem to crash very often because of concurrency problems (all hail boundaries).
I love boundaries.
This is still very early in development, but now it can produce some cute effects, so I've decided to finally announce that I'm not actually dead and to show
this little thing.
As usual in this thread, no, you still cannot use this for any actual game because
1) there are so many neccessary features missing that I don't even
2) all APIs will probably change completely like 10 or 100 times during further development and architecture refinement
3) Valve time

; I totally can understand why they take so long to make anything, but hopefully, this one will have been worth the weight. Thanks, and have fun.
P. S. Ask anything, I'll probably have to make a proper documentation some day anyway, so having some bit ready by the time won't hurt.