Current Projects

This project is a real-time strategy game I'm designing, using Unity3D. You can find the project pitch here.


Log

2014-01-01 18:35:10
I'll start the year with a new update. I redid my entire RTS-system over the last two weeks.
The progress I've been able to make was thanks to the schoolbreak. I got to do more than I had
been able to achieve in two months. Right now I've come to a stage where I am almost finished.
The only thing that I need to do right now, is to fix some small bugs, and perhaps implement
some actual AI algorithms. Right now, I'm not too proud of my AI, but I think that's because
of some poor choices in the beginning on the architecture of the game, but the main reason is
the stress for all my other courses, plus the stress for the exam dates. My AI-system works,
although I would very much prefer it to be better. After I've finished my exams, and I can find
the time for it, I will look more into it, with the possibility that I'll have to redo it entirely.
I'm not afraid of having to redo a project, even a big project, as long as I can find enough time to
do it, and as long as there's a chance that I can make it better.

Current stage:
Player can select buildings and units of all teams, but can only control his own. (this wasn't the case before)
Player now has gatherers which will go mine resources when assigned. (new feature)
Player can't build resource gathering buildings. (removed feature)
Player can attack enemy units and buildings. (improved feature, player could only attack units before)
HUD now displays gathered resources count, and shows more information concerning buildings/units. (improved feature)
HUD now displays multiple kinds of cursors. (new feature)
Enemy spawns scout automatically, which will roam around randomly. (new feature)
Enemy gatherers automatically find the nearest place to get resources. (new feature)
Enemy can spawn attack units, and build other buildings when needed, and available. (new feature)
Units and buildings now have a resource cost, which will decrease the number of gathered resources. (new feature)
Units now take time to spawn/can queue for spawning. (improved feature)
Added guardtower and functionality. (new feature)
Modeled and textured some temporary art using AutoDesk 3D Studio Max and Adobe Photoshop CS6.

Some ingame screenshots:
This is what you see when you run the game.
Selecting building.
Creating units.
Assigning gatherer to resource deposit.
Attacking enemy units.
Builder selected.
You can't build anything where there's already something placed.
Placed the new building, builder is on his way.
Building successful.
Enemy camp.

I will be adding more features when I have enough time, like fog of war, display more information on HUD,
create main menu where you can load in your custom made levels using my level editor, improve AI, implement
more races (i.e. dragonrace, tigerrace) with unique stats, ... But that will be for a later time, when I'm
finished with my exams.

As far as the level editor goes:
I've fixed some xml-bugs, such as the loading and saving of different types of buildings.
You can now also place the buildings as displayed in the rts game in Unity (multiple textures,
which you can change by selecting the right team in the combobox in the object manager.
I've also fixed a major lag issue. The resolution of the heightmap was too high for the
algorithms used to raycast to the terrain, so I've dumbed it down to 128x128, and scaled
the level up so it's not really noticeable. By doing so, I removed any kind of lag that was there.
But in order to still let the user draw his own heightmaps, I've also had to change the
heightmap painter window completely. It now only displays a 128x128 canvas on which you can paint.
I have also implemented a fully functioning Undo/Redo-system, using MVVM (Model-View-ViewModel).
You can go back right up to the point where you started, and you can redo to the last step.
You can undo/redo using the Edit-option in the menu, or by pressing the standard Ctrl+Z, Ctrl+Y.
I also have made a button to select nothing, in the object manager. Else you always had a building,
object, or unit selected, but now you can choose to not select anything at all.

Screenshots:
Heightmap Painter
Placing building in level editor.
Placing building in level editor for other team.


2013-12-19 18:28:18
I've currently been working a lot on my Level Editor for the game. I decided not to let
the user change the heights of the level in realtime because it gave me a lot of lag.
Therefore, I've implemented a WPF-based HeightmapPainter, where the user can paint a heightmap,
after which (s)he can save and load that file into the Level Editor.
What also works, is the placing of models on the level, in 3D, saving and loading of
the whole level into an xml, and you can also undo/redo any placement of objects you did.
I've also kept looking for AI algorithms, and I think I might have to rethink the entire
AI system I already had in order to get it all working, but I'll look into it more soon.
If I can't find a good way of creating my own AI system, I'll look into finding an
AI-plugin for Unity and see if I can make it work like that.

Screenshot of my Level Editor and of my HeightmapPainter:



The level's colors are based on the height of that vertex. Blue = waterlevel,
Green = normal height, Brown = mountainous region, White = snowlevel.

I'm still changing the heights-boundaries, so right now it might still look a tad weird.
(Level editor is made in XNA, combined with WPF for UI,
HeightmapPainter is pure WPF, both programs are still a WIP)

2013-12-13 01:11:14
For the last week, I've been reading up on AI for RTS-games. So far, I haven't found much about it,
but I'm still looking and reading. I've also been focussing a bit more on my level editor. I can now place buildings,
objects, and units, and save everything to xml, after which I can load my level from the xml into Unity.
For the next week, I'm going to focus more on the AI, and trying to make some progress with that.


2013-12-05 18:29:28
AI Update:
Enemy now spawns a scout and already creates the necessary builders and resource gatherers,
placing them randomly around the settlement.

Next week I will discuss with my mentor how to progress better with scripting the AI, because right now,
I'm not convinced that I'm doing it in an optimal way.


2013-11-29 12:12:48
I can now load a terrain with custom heightmap into the scene from xml.
Had some issues with collision with the terrain, but that's resolved now too.
This was necessary if I wanted levels created with my level editor to be working in-game.
I'm still working on my level editor, but I already know I'm gonna be using heightmaps in there as well.

Next step is to implement all the previously mentioned features step by step.


2013-11-28 15:53:14
Implemented simple resources-system so that you can't create whatever you want whenever you want it.
Implemented scout that roams around the field.

To implement still:
AI: - Automated creating of buildings and units
- Making of decision when to attack

Buildings: - Defense towers
- Walls
- Upgrades for each building

Units: - More attack-units (so far, only knights and archers are available)
- Upgrades for each unit

Different races:- Dragonfolk
- Tigerfolk

2013-11-27 16:37:54
I've implemented some features. The builder can now place buildings, but not just anywhere in the level.
A few examples of this:
From now on, I'm fully gonna focus on implementing an AI system that can sustain itself.

2013-11-22 00:22:00
For now, I'm gonna keep my game non-squad based. This is different from what I was going for
in the beginning, but in order to stay on schedule, I'm gonna keep it unit-based, instead of squad-based.

I implemented 3 different buildings today: the barracks, the archery, and the main settlement.
The barracks can produce Knights, the archery can produce Archers, and the settlement can produce Builders.
So far, the Builder can only attack. I will be looking into letting him construct buildings by next week.
As for the Knights, and Archers: they can run around the level using A* pathfinding, and they can properly
engage in battle with eachother.
The level is dynamic, since Builders will be able to place buildings, and therefore can change how paths
are calculated, so the pathfinding system is constantly updated as to where there are buildings blocking the way.

I'm currently working on letting the Builder build a building, and once I got that done,
I'm gonna work on a basic level design.


2013-11-21 01:58:30
I finally managed to get my A* pathfinding to work in Unity. Right now I have simple
xml-loading and A* pathfinding implemented in my game. The next couple of days,
I will be working on different types of units (builders, soldiers, archers, ...) and
after that, I will be working on buildings to spawn these units at (barracks, archeries, ...)


2013-10-18 09:23:33
Already working:
> Squad spawning
> Squad movement (with navmesh-pathfinding)
> Squad combat (AI still to be implemented)
> Moving camera with arrowkeys (will add movement with mouse too)
> Some small design sketches for small buildings