TopFish

[Dev Log] Currently Unnamed Game About the Refugee Crisis

Recommended Posts

First of all, Hello! I've been thinking of signing up to the Idle Forums for a while, but wanting to take part in this jam is the thing that has finally pushed me over the edge. You all seem like a delightful bunch, and I'm looking forward to seeing all the wierd and/or wonderful things that come out of this jam!
 
 
I'm sure you're all well aware of the crisis faced by the large number of people currently fleeing Syria and other middle-eastern countires, seeking refuge both in Europe and elsewhere. Unfortunately, this humanitarian crisis shows no signs of abating, and with winter approaching conditions are set to get much worse for those in the many temporary camps across the continent, unfamiliar with and unprepared for the colder European climate. At the same time, with many countries increasing - or set to increase - the intensity of their military operations in Syria, more people are likely to be displaced, adding further pressure to the already overburdened refuge programmes across Europe.
 
I understand that this a very sensitive, very serious topic, and that while I think it just about fits the 'winter' theme, it might not fit tonally with most of the other entries to this jam. Therefore, if there is a general feeling that this isn't appropriate to the jam, I will either make changes as necessary, or choose another project.

 
So, on to the game itself. My plan is to create a fairly simple management game, in which the player takes on the role of a fictional international organisation trying to manage the refugees entering Europe. It will be turn-based, with time advancing daily, and each turn you might - for example - choose to construct temporary shelters, launch a fund-raising campaign, or try to persuade a government to change their policies.
 
Visually, I'm thinking of trying to make it look like a segment from a TV news programme - so lots of simple shapes and bright colours. This might mean that it fits the 'Focussed Pallete' diversifier, but I'd rather have it look nice than constrict the colours just to meet the diversifier. If I have the time, I'd also like to include a commentary for the 'Designer Notes' diversifier.
 
 
I'm very keen to hear people's advice and recommendations throughout development, so with that in mind, I'll try to make a build available as soon as there's something worthwhile to see. Creating this game is going to involve a lot of research, so if anyone either knows good resources or perhaps even has some direct knowledge of the crisis, please get in touch. Similarly, if there's anyone out there who wants to take part in the jam but doesn't feel like contributing technically or artistically to a project, perhaps you'd like to help me with the research? If so, please get in touch.
 
This game might very well be a complete disaster, but if so then I hope it will at least be an interesting disaster - therefore, I'm going to try to be as open and as thorough in documenting the development as I can.
 
 
Lastly, but most importantly: if you would like to do something to help those caught up in this terrible situation, The Guardian has an excellent piece here with suggestions of charities and organisations that you may wish to support, either through donations or otherwise. I'm sure there are many other groups not listed in that article who are also doing tremendous work. I intend to add some donation links in the game itself, so please let me know of any other charities that would be worth including.
 
EDIT: Suggestions for names are very welcome. I'm pretty useless at naming things, so I'd really appreciate some help with that.
Edited by TopFish

Share this post


Link to post
Share on other sites

So, I thought I'd start with a quick summary of what I'm planning to do today.

 

I've never made a game before, but I do have some experience with Unity, so I'll be using that. I'd like to try to get something appearing on a screen as soon as possible - partly to re-assure myself that I'm actually doing something, and partly so that I don't feel so much as if I'm screaming C# into the unflinching void. With this in mind, I'm going to try to create the map view.

 

I've got a KML file knocking around somewhere with latitude / longitude co-ordinates of all international boundaries, so I'll use that to construct the map. Tasks for today are therefore:

 

  1. Get Unity parsing the KML file
  2. Extract the polygons of the countries that I actually need to render
  3. Convert the lat/lon coordinates to ECEF (x, y, z) coordinates, and scale them.
  4. Use the ECEF coordinates to build a mesh - (this is going to be by far the hardest task)
  5. If I have time, start a very basic UI template.

But first I need to make a cup of tea.

 

edit: I've just discovered that the last time I used Unity was at version 4.6-ish, so I guess I can add this to the list above:

 

      0. Install Unity 5, and spend ages figuring out how to use it.

Edited by TopFish

Share this post


Link to post
Share on other sites

Right, time for a tea break. Seems like a reasonable time to do a little update too. If you're not really interested in this perhaps obsessive level of detail, then, um, sorry I guess. It's only going to get more tedious from here.

 

  • I've installed Unity 5, but it has a habit of spontaniously crashing if I leave it alone for a few minutes, so I've gone back to version four-point-whatever-it-is.
  • I've written code to read and parse the KML file, and extract the lat/lon coordinates.
  • I've written the function to convert lat/lon coordinates to ECEF vectors. This was a pretty nice place to start, since I've done this before in Python.

This means I'm onto item 4, which - as I said previously - is the tricky one. While I've been enjoying my cuppa, I've been reading up on how to go about this, and it sounds like the answer is Ear Clipping, so that's the next step.

 

I'm optimistic about getting this done today, but time will tell. Hopefully my next update will include a screenshot - this would make me very happy.

Share this post


Link to post
Share on other sites

Things have been a tad less productive than I'd hoped, but unfortunately I think it's time to down tools for the day.

 

After hours of bashing my head against it, I've successfully implemented the 'Ear Clipping' algorithm. It really wasn't as complicated as I somehow managed to make it. Anyway, it works. I haven't managed to get the polygons to render in Unity yet, but mucking around with the object inspector shows that the meshes are there - here's a picture of the mesh of Ireland, to show that I'm not making it up:

 

l22kMp1.png

 

However there are problems:

  • It currently doesn't support having countries defined by multiple polygons.
  • Russia is too big - it exceeds the maximum mesh size in Unity. I've run into this issue with Unity before, and it's a pain to deal with. My only option is the break the country down into smaller objects, but doing this programmatically, and getting the parts to tesselate nicely is going to be a huge amount of work. The alternative is to remove Russia from the simulation, and avoid rendering it. This currently seems like a much more attractive option, but also leaves a bad taste in my mouth. I'll have to give this one some thought.

EDIT: Having said I was done for today, I kept poking around. Turns out the reason that nothing was showing up in the game view is because I'd forgotten to scale the coordinates - the polygons had ended up being earth's radius away from the origin, which - needless to say - is a little beyond the draw distance. Solving this problem was now created another - whenever I point the camera at any of the meshes, Unity hangs due to getting overwhelmed by messages saying that the mesh doesn't have texture coordinates or normals. This, at least, sounds pretty straightforward to solve.

Share this post


Link to post
Share on other sites

...So, yeah, I kept working. I know how to have a wild Saturday night.

 

Things are going well! Here's a screenshot:

 

U0EPC0K.png

 

There's still a rather noticeable gap where Russia ought to be, since it has decided to remain stubbornly big. However, I'm pretty pleased with how it's starting to look. I think the slightly siplified geometry could work well with the 'TV news' look. Other holes in the map above are due to the fact that I'm currently filtering the map with a whitelist, so a few counties have slipped past me while I was adding to the list.

 

Tomorrow I'll start some basic UI stuff, and try to make it so that if you click on a country, something happens. It'd be good to get the camera moving too, since as it stands it's difficult to tell that the geometry sits on a sphere, rather than being horrendously distorted for no reason.

Share this post


Link to post
Share on other sites

Progress!

 

Turns out I'd royally buggered up the LLA-to-ECEF algorithm, which is rather embarassing. Now I'm just pretending that the Earth's actually a perfect sphere, which might not be accurate but the difference isn't noticable, and this removes a lot of pointless complexity.

 

Also, I'm not sure why I was getting mesh size errors - Russia is a few thousand verts, but it's not enough to actually cause problems. It's rendering now, so I'm not sure what was causing the error, but I guess I'll just have to hope that it doesn't come back.

 

I've added basic camera movement, and made it so that countries get highlighted when you mouse-over them. There's still no real interactivity, but it's nice to know that things are working.

 

Here's how things look now:

 

ALdt6GE.png

Share this post


Link to post
Share on other sites

Unfortunately, I didn't get much else done yesterday - as it so often does, life got in the way a bit. This evening's been busy too, but I managed to find a half-hour to play around with things a bit more.
 
I mostly just smartened things up a bit - nothing very exciting to report - but I've added normal-reversed copies of the meshes, so you can see the back of the continents on the other side of the world. I'm really pleased with the effect, and I think it adds to the news-graphics look that I'm aiming for. Here's a screenshot:
MqiFePI.png
Again, this looks much better when it's rotating, so maybe I'll see if I can put together a gif or something. The other noticable things in the image above is that I've made it so that only countries you can interact with (EU member states) are coloured.
 
Rendering the reverse meshes has also revealed a couple of issues with the way I'm calculating the polygons. As you can see, Antartica has got a disturbingly straight bit of coastline, where for some reason a few triangles have the wrong orientation and have therefore been back-culled. Russia's also causing problems again - since it spans a ridiculous range of longitudes, but only has verticies at the perimeter - its interior is all angular and horrible. So, it seems like I'll have to revisit that code at some point, but for now I want to press on with actually turning this thing into something approaching a game. Hopefully I'll have something more substancial to report tomorrow evening, but I'm making no promises.
 
Lastly, thanks for the positive comments! It's really encouraging to know that there are people interested in this.

 

EDIT: The aforementioned gif:

 

umLjp2n.gif

I didn't particularly intend for it to accelerate like that, but it's late at night and instead of doing this properly I just had Unity apply some torque to it.

Edited by TopFish

Share this post


Link to post
Share on other sites

Wow, that's looking great. I've poked at mesh generation and found it to be a huge pain so I'm suuuuper impressed at how good it's looking after 2 days.

 

Also, even though as far as I know no one else is making a serious game (y'know, Serious Games), I think it's only good to have a wider variety of games and you shouldn't at all worry about it fitting in with all the other stuff that gets made.

Share this post


Link to post
Share on other sites

This kind of generation is really fascinating. Interesting take on the theme too, can't wait to see what you do with it!

Share this post


Link to post
Share on other sites

Sorry for the lack of updates this last couple of days. I had been hoping to try to post something roughly daily, but things at work have been chaotic today and yesterday.

 

I've come up with methods to solve some of the mesh issues I'm having, but I haven't had time to implement them. Even then, I really need to press on with other parts of the code, so I think a better mesh algorithm is something I'll do if I have time towards the end of the jam. Fingers crossed for getting something done tomorrow, but I've been saying that pretty much every day so far.

 

Thanks again for all the nice things you're saying. In spite of these set-backs, I'm still optimistic about getting this done.

 

EDIT: A bit more progress today, but there's nothing exciting to show for it - mostly camera control stuff, such as zooming to a country when you click on it.

Edited by TopFish

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now