Hello Indie Db,
I've recently uploaded a slightly new version of the game. It includes minor tweaks that were made during the last two years. I've been tinkering with a few things but there is nothing knew. I can't even remember what the tweaks are. One if it is a new experimental camera that automatically rotates as you move your ship. You can download it here: Indiedb.com
Obviously nobody worked on this, and by nobody I mean me. It's been two years. I always thought I would one day just continue working on this but it never happened, and let's face it, it never will.
It was a great learning experience writing this game and it was a great idea to work with. This was my first real 3D project. I remember the first thing I got working. It was a bunch of rotating textured boxes. Then I started building more complex meshes and loading models. I worked on it every day and it evolved.
That was two years ago.
The game reached the point where it's just too complex to just continue working on. There are quite a few features planned that just need a lot of time to be developed. While the main limitation is time another one is the tool it was made in. But most importantly I just can't continue working on this just as a pure hobby. I tried, I failed.
The game until now was made in an older version of Game Maker. Game Maker is a really great tool if you want to create simple games. But it's horrible if you want to make something more complex. Especially if it's 3D. There are just too many limitations that get annoying.
Vector operations look way more complex than they should be. Object can only have a fixed number of events. Model loading is slow. 3D support is trash. There is no mipmapping. Window functions are extremely limited.
Infact I think I'll just post the latest piece of code which automatically rotates the camera.
st_rot_desired = -(Focus.y+pi*0.5); st_rot_desired = fmod(st_rot_desired,2*pi); temp = 10; ntemp = st_rot_desired - st_rot; if (abs(ntemp)<abs(temp)) temp=ntemp; ntemp = st_rot_desired - st_rot + 2*pi; if (abs(ntemp)<abs(temp)) temp=ntemp; ntemp = st_rot_desired - st_rot - 2*pi; if (abs(ntemp)<abs(temp)) temp=ntemp; interp_function = 1/(1+engine.deltatime); st_rot=lerp(st_rot+temp,st_rot,interp_function); if (st_rot<0) st_rot+=2*pi; else if (st_rot>2*pi) st_rot-=2*pi;
If I was to write this code in English it would sound like, smoothly move the rotation of the camera towards the rotation of the focused object by 50% each second. This is a simple thing to do if you have a few classes and methods written. But in GML, this is just one of those fat pieces of code that could have been shorter but can't because of the limitations inside game maker. In fact this a quite nice piece of code comparing it to other parts of the program, it's quite nice.
If I'm going forward with development, I will rewrite the code in a proper programming language. I can design better code. Better from every point of view. I'll be able to compile it to different platforms.
I'm about to make two decision regarding the future of this game. I think it's a relatively unique concept that is worth exploring further. It's just too time consuming to be working on just as a hobby but I'd still like to finish this game some day.
Taking into consideration user feedback I want to make two important decisions.
- The only way I'm finishing this game is if I can sell it. So the question is, should I continue development and make a release? A demo is available to download, you can test it. If this game was finished would you buy it? What if it was multiplatform? What if it was available on Andriod, iOS or other mobile devices?
- Should I release the Game Maker source code? Up until this point the code is was written in game maker. But if one thing is certain it's that if I ever continue working on this I'll need to reorganize the code, declare some types to work with and write a set of helper functions in a proper programming language.
Thanks for reading. I'll gladly answer any question you have.