Version 0.07 is out.
Version 0.07 is out.
After a long break I’ve returned to working on the game, and here is a new update!
A new build v0.05 is available right there.
Not much changed since previous progress update: added Heal spell; all spells now consume player’s mana; many small fixes and tweaks.
Changelog since v0.04:
Last week I (somewhat unexpectedly even for myself) implemented a feature I hadn’t even considered before: split-screen multiplayer. Up to 4 players are supported, just make sure you have a big display and enough gamepads.
It turned out much easier to make than I’d thought (took me a weekend though and is still work in progress), and also very useful because it forced me to clean up a lot of stuff, such as input handling and GUI, and introduce the concept of multiple players which is the first step towards networked multiplayer.
Other significant changes:
My unnamed planet game is unnamed no more! It’s now called On The Wing, which, I believe, perfectly fits the nature of the game.
A lot of work done this week and not much to show.
The only new gameplay feature I’ve implemented: monsters now drop mana when killed. You can’t do anything with it yet, but at least it looks nice, especially during the night. :)
The biggest thing I’ve been working on is adding GUI to the game: main and in-game menu, settings screen, progress bar when generating a new world, pause functionality and all that stuff, which is required for a proper game (it all is still work in progress). At first glance, adding menus doesn’t look hard, but in order to do it I had to refactor a lot of existing code, which is a good thing because now it’s much better organized.
For the GUI, I decided not to use Unity’s own GUI functionality (which, according to popular opinion, is too far from perfect) and after some investigation chose NGUI instead. NGUI looks like one of the best options for building user interfaces in Unity and so far I like it, though it took some time to learn how to use it.
The next thing I want to implement for the game is save/load functionality. This will delay adding new gameplay features once more, and is also quite boring to work on, but I have to do it now to save time in the long run. Save/load system is that kind of functionality which, I think, benefits from being implemented as early as possible.
The biggest change in this build: I’ve implemented an aggressive AI for monsters. They’re now switching between two behaviors: Wander (flying around randomly) and Attack Player, when the player gets too close to them. While attacking, monsters shoot fireballs at the target and “dance” around it in an unpredictable way, which makes them harder to hit. Now these monkeys are truly dangerous!
While this behavior doesn’t look like something big and complicated, it required writing quite a lot of code to implement two systems: steering behaviors (which are particularly difficult on a sphere) and a goal system, which allows characters to have different goals and goal evaluators that are used to find the most important goal at this moment. Now it should be possible to implement more complex behaviors when I need them.
Other, smaller changes:
Last week’s progress on my new unnamed planet game:
And here is a screenshot of the new Evil (but harmless at the moment) Monkeys (as I said, the model is just a placeholder)!
Yes, it happened again. I’ve postponed that voxel engine game I was working on because I want to try something else. I always liked an idea of making a game where the world is a real spherical planet, a little one, 1 km radius or so. Last two weeks I’ve spent working on a small prototype (I used some code from the past, but rewrote most of it anyway), inspired by Magic Carpet, one of my favorite games. The prototype now has a real spherical heightmap-based terrain, which can be modified in real time (there are three different “spells”). I’ve even recorded a video to show it off. :)
It’s been a month since I started implementing a basic voxel engine in Unity 3D for my game(s). What I have now:
Isn’t that much, but at least something. Now, after I have a basic engine, I can focus more on other stuff: generation of more interesting levels and adding some interactivity, such as doors, light switches and so on.