libRocket + SDL2 = Haven?

Currently, I’ve been planning more about the development of Haven. Just creating the basic GUI seems to be a pain, and I’m looking for a fully developed solution to the GUI.

The answer seems to be libRocket.

As a newbie, I like the idea of “write once, run everywhere,” and libRocket seems to do what I want it to do. My only concern is how flexible the GUI can be, but if all goes well with the integration with SDL2, I’ll be able to fulfill all of my GUI needs and be free to develop the actual functionality of the game.

Therefore, most of my time over the next few weeks will be spent trying to integrate libRocket with SDL2, and then beginning work on the basic game engine.

I am also considering whether I should switch to Python since libRocket makes use of Python as its scripting language, but seeing as I’ve already used Lua, it makes me wonder whether I should even think of using Python. I’ll look into it anyways.

The Current State of Events

This is a picture of a prototype of Haven's GUI system in alpha. This was taken the night after I implemented Lua.

This is a picture of a prototype of Haven’s GUI system in alpha. This was taken the night after I implemented Lua.

It’s been awhile since I’ve updated this site, but I’m back. Though I’m pretty sure no one reads this, here’s the deal: I’ve made it a goal to finish Haven’s development no matter what, and things have been going along smoothly. I’ve been slowly progressing thanks to the work of people on Stack Overflow, and I’ve managed to create a basic GUI that can do these things:

  • Create as many windows as you want (supposedly)
  • Have a minimize button
  • Drag the window
  • Pin the window to a position so it cannot be dragged
  • Render the window with and without borders
  • Be able to add on GUI elements/widgets to the window
  • Tell when your mouse/finger is on/off the window/widgets
  • Be controlled by a Lua script

I’ve rewritten the basics of this GUI system about four times now, and it actually takes a lot of work to make sure it is built smoothly. Much of the work goes into organizing your code and class structure to make it extensible and able to be used with other parts of systems. However, more code is now ready to be implemented. Once I finish up writing additional GUI elements, I should be able to put together a title screen. After that, much of the work will be creating another prototype of the battle and cut-scene systems, which is bound to take awhile. But, however, fear not! much of the actual planning of the gameplay is done.

Haven is now the name of the game that is in development. It is currently meant to be a 2D tile-based turn-based strategy game, similar in genre to Fire Emblem or Advanced Wars. However, I plan to release the game on PC and perhaps mobile platforms, and allow people to develop their own missions for the game through scripting and perhaps bundling their own resources in mission packs. Multiplayer is possibly an option, but will most likely not be for the sake of simply finishing the game. It may be included later in an expansion update or something of the sort.

Haven will also have a campaign of around 20 to 30 missions. Each mission will put you in charge of a host of programs and perhaps viruses to progress through the story, as well as through some boss battles.

The basic story is as follows:

It is the middle of the 21st century, and the world is booming. The computer industry continues to surge forward, and Haven Software Solutions is on the cutting edge of technology for information security. You are Drake Pauler, a young software analyst for Haven, and are one of the first people to be given the revolutionary, data-integrated virtual reality system by the name of HavenOS. After receiving a strange message from an anonymous persona called Cipher, you discover a strange, almost impossible piece of technology that will change the face of the Earth forever: Isa. Can you uncover the mysteries surrounding Isa and Haven and bring hidden secrets to light?

More story and development details coming later. Not promising soon.