November 20, 2005

Design almost done

OK once a week it is then.

Well the 3D wireframe model isn't there yet, but I've got a few pretty shapes set up so the move from JOGL to Java3D hasn't been too difficult. I decided to go for the heightmap approach to represent the landscape. I think I will provide the option for one to be automatically generated (probably using fractals as they produce the most realistic results).

I have worked out the command structure for the teams (an overall commander with a list of overall objectives – he creates a set of teams with a captain in charge of each), and also how to work out the win conditions. The idea is that different types of game could be started with different win conditions.

I've started drafting my Progress Report now, I'm at a good point now having all but finished the design of the project so there should be no problems there. Final design updates to come this week – then I can start implementing :)

November 12, 2005

Good Progress

First off is a note on the frequency of these entries – now that things are rolling along a little faster there will be lots more of them.

I went to have a chat with Nick Palmer last week, he did a similar project a couple of years ago (and it ended up like this ). Nick was really helpful and brought a few things to my attention that may have caused issues further along the line. He also gave me some guidance regarding the AI side of the project, which is the side I am most interested in (as opposed to the graphical eye-candy). Our discussion of using waypoints to precalculate paths and lines-of-sight was really useful and should help me reduce the amount of processing the engine has to perform on each iteration.

Nick's project partner, Gareth Clay, handled the graphical side of the project. Reading his project report (available here ) has also been very useful. Having spent most of the day reading I have decided that using the Java3D package would be a much better way of creating the graphics for my simulation than the JOGL bindings I had previously experimented with. The cheif motivation for this is that the Java3D takes a much higher-level approach to creating the graphics, which means I can concentrate more of my effort on the AI side of the project.

My understanding of 3-D co-ordinates has improved to the point where I am going to start trialling conversion of height-maps into renderable representations this evening. By tomorrow I'd like to be able to upload a couple of screenshots of a wireframe landscape being rendered in real-time.

October 31, 2005


OK it's been a while – this week and last I have been researching landscape and agent design. Agents first – the idea is that several hundred of these little guys will be milling around on the battle field at any one time, looking around and deciding what to do, communicating with each other, and anything else they might end up doing, so performance is an important consideration.

I'd got a whole pretty object oriented design roughed out, with team objects and agent objects and weapon objects, with agents subclassing a creature type (maybe later I'll want to add war dogs, or the occasional innocent cow… so not everthing has two legs for example). With all these objects there may be processing and memory implications – this is something that will be difficult to test, so the design may change if my computer can't handle the stress.

Ok enough about agents, let's talk about landscape! Landscape in three dimensions is actually a pretty difficult thing to do – the first problem is how you represent it… do we:

  • Store a height for each point on the map, and if so how do we choose what resolution to use (1 plotted point per metre might be a little too inaccurate, but there is very little to be gained from having, say, 1 per millimetre)

  • Store a series of squares representing the hills – the first square is the entire map, then we can add squares of varying sizes, heights and positions over the map to create the hills, valleys etc. Very storage-efficient but perhaps limits the landscapes to rather boring layouts (unless we use REALLY small squares…)

  • Something else…

The second sounds great – I don't mind that much if there are no exciting features to the landscape, the focus is more on the AI. However I stated in my spec that I would like to recreate historical battles, which means creating a custom map. This is most easily done with a height mapped image which would be easy to translate into the first format, but pretty difficult to do in the second.

I decided that I could do with a little guidance from someone who has done it all before, as otherwise this could start being a very large part of my project, which is not something I want. I'm off to see Nick Palmer later this week, he did something similar with a paintball simulator a couple of years ago, perhaps he can shed a little light on this problem.

Finally there's the problem of how to draw it all… I like the look of OpenGL but can I really afford the time it takes to get into it? Otherwise I could stick to the original idea of showing a top-down view, but that's a little boring. What will I do? Tune in next week when (hopefully) I'll have an answer ;)

October 18, 2005

And we're off

I thought I'd set this up mainly for my own use in when writing my report in a few months' time, but also for anyone who might be interested in what I am up to. My proposed timeline is listed at the bottom of this entry, although in all likelihood it will change beyond recognition before the end.

This week being week 4 I am researching. I have been reading up on a couple of similar projects from last year, which have been a useful insight into potential pitfalls. I think I am going to go with a height-mapped image to generate the terrain, as this enables me to pre-define the terrain over which my minions will do battle, and is also a widely recognised method for doing this.

Tonight I am going off in a slight tangent in that I am looking at using OpenGL with Java. This is something that could wait till later, but is justified as it may well save me time when I come to write the final GUI for the project (and it would look so much cooler in OpenGL ;)). A little later in the week I will be taking a look at Agent representation and design…

That's all for now, below is the proposed timetable:

Week 3:Submit written specification; contact Mithril team (similar project from 2004)
Week 4:Research methods for representing landscape, and agent sight
Week 5,6:Agent and virtual world design, implement Agent.
Week 7,8:Design a suitable framework for the application (define interfaces, application structure, patterns to be used, etc)
Week 9:Prepare Progress Report
Week 10,11:Submit Progress Report, begin formal coding of project
Week 12,13:Subclass agent code to create different types of agent (eg swordsmen, archers, leaders, cowards, etc)
Week 14,15:Implement virtual world
Week 16,17:Create simple user interface with birds-eye view of the world
Week 18,19:Pitt agents against one another, begin agent teamwork testing.
Week 20–23:Completion of application, planning for presentation
Week 24:Give project presentation
Week 25:Begin Final Report write-up
Week 31:Hand in Final Report

September 2022

Mo Tu We Th Fr Sa Su
Aug |  Today  |
         1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30      

Search this blog


Blog archive

RSS2.0 Atom
Not signed in
Sign in

Powered by BlogBuilder