Introducing Orion’s Gate, Reticulum, Corona UI
It’s been quiet around here these days. That mostly has to do with the fact, that for once, I really want to finish a project I start. I have had the idea in itself for quite a while now – I always wanted to somehow convey my idea of a possible future scenario. The game is called “Orion’s Gate”, and takes place 500 years in the future in a fictional dwarf galaxy.
The whole thing is meant to be a MMO-RTS – Massive Multiplayer Online Real Time Strategy game. It has gotten to a point at which I am able to present a few things. As of now, the game itself is not complete, but fundamental things are working – such as database connection, verify player credentials, establishing a session, retrieving character data.
I don’t want to give away too much of the game itself as of the moment – I like to keep the suspense. Rest assured that it is 3D, and is going to be available for Windows, Mac OS X and Linux flavors.
The three races from left to right are:
Orion Federation -
The only democracy in the Orion galaxy, and defenders of values the humans believe to be the most important: freedom, independence, and equal rights for everyone. A variety of people from all walks of life have lead the Federation, which lead to commended diversity – even by other races. Technologically, humans are only second to the Reticuli, and somewhat equal to the Midori.
Reticuli Triumvirate -
Wisdom, science, and enlightenment are pursued by the Reticuli above all else. They are the oldest race in the galaxy, but also face a greater challenge – possible extinction due to genetic degeneration. This has forced the Reticuli to go a different way and to develop new technology and acquire anything alien that may yet help their survival – which is probably the main reason for this ancient race to be in the galaxy.
Midori Regime -
A rough, straight-to-the-point society. Centuries of slavery and oppression have lead the Midori to rebuild their society through force and military might, which is why these people seek to control the galaxy, and will do what is necessary without remorse, and won’t stop for no one. Politically speaking they are a dictatorship, their mentality has shifted toward a territorial and capitalistic mindset.
As you can see, we have three very different colors here. I’m dying to find out how this will turn out between people once the game goes live.
It is written in BlitzMax – which I would like to think of a distant relative of Objective-C. It is extremely flexible, object-oriented, and not interpreted (meaning no virtual machine or the like). It has its own compiler and runs directly on the chip. The beauty of it is, that it is primarily aimed in making games – so pretty much all graphic operations are hardware-accelerated.
If you so desire, you can also create normal GUI applications and combine hardware-accelerated graphics in it. This is highly useful for 3D-modeling applications, or scientific purposes. The module, MaxGUI, comes with the package.
BlitzMax, among other tools, is developed by BlitzResearch and has been in constant development for over 10 years – and is still ongoing.
The user interface for this one is a very vital part. For the purposes of the game, I purchased a library called ifsoGUI. In effect, it’s a UI module through which you can rapidly create in-game user interfaces that can have pretty much all of the known elements such as buttons, labels, text boxes, images, and so on and so forth. The specialty of this one is that it is fully skinnable – and can change themes on the fly.
However in order to make it work I did make some changes to the source code, and there are going to be many more. I’ll be implementing some of my stuff I did earlier for MarcOS – it should be easy to port. Things such as “iconification” of a window and something I’d like to call MenuShelf. More on that another time.
Another thing I put in is something I’d like to call Corona Viewer. It can be called with a command line switch and is mostly a development tool for themes. With it you can have a look at how a theme will look without actually entering the game. Useful for when people want to test themes before they share them with the community.
When the server is running, it will write information about its status, among other things, in periodical values, into XML files. These XML files and thus the server data is accessible from the outside. You can then go in with any tool you like, parse the data, and display it in any way you like.
This XML shows the server status, and number of players.
One more thing… Reticulum Engine
The game is 3D, obviously. In the past weeks I have mostly been busy creating an engine for the game. I am calling it Reticulum. The engine is based on a module for BlitzMax, named MiniB3D. The module, in essence, wraps OpenGL into BlitzMax. I have already made hacks and extensions to that module in order to make it do what it can do now.
The models in the game are really comprised of multiple meshes, that are loaded separetely – but kept together in an model object in memory. This also enables me to switch states of a model as needed – for example a Relay is only active for a short time. I can then switch parts of the model for something different, or textures of that part, or… you get the point. That also is just about the only way to go in MiniB3D if you want quality meshes.
The Geometry Of Shadows
Probably the biggest break-through I had in development so far, was that I have been able to figure out how to cast good looking shadows, in real-time. I don’t want to into too much detail – it all has to do with something called shadow mapping.
Believe your eyes. This is the Reticulum Engine casting shadows.
If you’re interested, here are all of the things I discussed in action.
And here is a written version where I also keep up about the progress:
Watch this space:
Until next time.