There you have it, the very first glimps of the biggest sparetime project I ever started on. It may not seem like much, but there's 6300 lines of code already :)
This video shows various aspects that have already been implemented:
- Dynamic map loading. Map files are small textfiles that can be easily distributed, while the actual graphics remain on the player's PC. The game will be accompanied by several 'tilesheets', containing 16px by 16px tiles, and the game uses these sheets to construct maps of any size, of any amount of layers. Each mapfile has one layer reserved for boundarychecking; like the original game, I use edgebased collision detection; this makes it possible to stand on tile A, but not move to tile B or vice versa. The three objects on the map (column, waterpit and stacks of hay) use this collision system, as well as the layer functionality.
- Audio. At this point, it's possible to play both backgroundmusic (streamed) and sound effects (cached), though only BG music is heard in this video. The quality sounds lacking, but it's the Fraps codec that compressed it :)
- Graphics. Took me some time, but I created systems to load and display animated sprites, again from PNG sheets using color keying. Having had major problems with the Z buffer, I've decided to sort sprites on depth for now. Goes well enough as long as the amount of sprites is limited, but it definately has to change eventually. I discovered that managing all your resources is far from automagic, hehe :)
- Camera. The camera follows the main protagonist 'fixed', i.e. without lagging behind in the beginning of the movie, but the movie also shows that it can dynamicly jump from one character to another (the king, in this case). Quite fond of the scrolling effects this change brought, actually :)
- Text display. Created a system to load png files containing characters, and displaying them as text. It's not clear here, but it's all done in such a way that text, as any image, can be scaled, rotated, colored and flipped as pleased. It's also possible to easily replace the graphics that I have by higher resolution ones, without altering a single line of code :)
- Events. Still a major work in progress, but I'm constructing ways for objects to react to events. The ones that you can already see here are input events (only keyboard at this point), movement (when six steps have been taken by the main character, the bombs he lay down explode), destroy (when a bomb is destroyed, it creates explosions), the less subtle create event, and animationend (destroy an explosion when it's done), and some more minor ones.
- Objects. All loaded from external files, making editing a fair lot easier.
Technical details:
- C++;
- JSON_Spirit;
- SDL (+Mixer);
- OpenGL;
Acknowledgements:
- The beautiful song that you hear has been used with permission, and is written by jamestonbellajo, I highly recommend you to listen to the full version at http://www.youtube.com/watch?v=cgl66VLS8QU
- All sprites that I've used are ripped from the original Lufia II game, and can be found at forfeit island (http://forfeit.electromaz.com/).
Last but not least, I ask of you to visit the Lufia World forums if you find this video, where I'll be reporting progress as I go along; it's a happy community, always willing to discuss anything related to the Lufia universe. You can find us here: http://www.lufiaworld.com/forum
Thanks for watching, and I'd love to see comments, criticism and ideas for what I hope to be a game worthy of the name Lufia :)
I'm using opengl because it brings hardware support. Most graphic cards nowadays support opengl, which means that some operations you can do are 'free': scaling and rotation for example; the graphics card automaticly handles them. From what I understood, SDL is all software rendering (I could very well be wrong here by the way). One thing's for sure though, opengl's possibilities are far bigger, meaning the step to 3d effects or even graphics in time would be smaller than when using just SDL.
ti83master 2 years ago
Looks great. I'm learning some SDL and can't wait to get to the level that you are at. Hope you will make it a great game! Also what are you using opengl for?
t0piser 2 years ago
Thanks! And trust me, my level is basic, very basic :) I can program, but I had no sdl, and very little opengl knowledge when starting what you see here. Planning well is the hardest in my opinion, you'll learn the rest along the way :)
ti83master 2 years ago
haha very nice! :-)
LeiTrigar 2 years ago
Hah, thanks mate! It'll take me a year, but I'll continue this no matter what ^.^
ti83master 2 years ago