So for the past few months we’ve been working on two things:
Reworking the procedural generation to be 4x-20x faster.
Multi-platform support through MonoGame.
Both of these goals are rapidly approaching completion. We’ve got the procedural generation system working in runtime mode, with the compiler needing some updates to get that working again. The runtime algorithm system (as opposed to the layer system which we were using previously) provides a 2x speed-up just on it’s own. The lightspeed compiler ramps that up to 4x-20x faster, depending on how large the generation is.
This weekend I finally got Tychaia in some form running under MonoGame. The past few weeks have just been wrestling with the state of the content pipeline, which resulting in us having to set up a Windows build VM and a content compilation service that automatically builds content into XNA format. Unfortunately the MonoGame content pipeline is so broken right now that the content compilation service can only use the XNA processors; it can’t yet use the MonoGame content processors. This means that while compiling art assets works, there’s no way for us to compile cross-platform shaders and thus our fast isometric occlusion is completely broken. Hopefully with the active development on the new content pipeline, over the next few months we should be able to transition to a completely MonoGame-native content pipeline and won’t have to deal with these issues, but in the meantime, the game is going to remain broken like this (and we’re not going to spend time trying to get it to work when the new content pipeline is expected in a few months time).
Here’s a screenshot of it running on Linux, in it’s entirely broken state:
The plan for me for the next few weeks is to clean up some of the crap in our code-base; particularly how we handle split processing and rendering of chunks. It seems that threading is much more fragile under Mono than it is under .NET (with regards to that you can put a non-null object into a ConcurrentBag and pull it out as null only a fraction of a second later?!?!)
Harvey will be focusing on finishing up work on the algorithm system (excluding the compiler), so that we’ll be able to integrate it back into Make Me a World, which should radically speed up the rendering process. Hopefully we’ll both be able to combine the work we’ve done in a few weeks time and have something playable again!
We’re going to look into things like Native Client, although this will only be supported in Chrome obviously so we’re unsure of how much time we’d want to dedicate to get that running. The website we’re setting up where people can generate their own map renders is still underway, but we’ll be moving the generation code onto the server and have the browser just download chunks of the map.
That actually gives us a few benefits over the client-only version; we can save copies of the renders on the server and we can also implementing panning around the world since we can just query the server for new 128×128 renders of images.
So it doesn’t look like I’ll get to finish my Ludum Dare entry (have to go to work tomorrow!)
Here’s some pictures of it though.. The idea was that you were given missions to steal things from places around the world, but it turns out in the end that you’re stealing parts that are being used to build some sort of super weapon, then there’s some moral choice ending.
The biggest thing I got out of this was improving my pixel art skills though, and I’m really proud of the tile set graphics.. :)
Ingame, where you’d walk around, disarm traps and sneak around guards before stealing the item. There’d be a mission time limit as well.
World map selection screen. You click on the yellow dots to goto missions (in the original design, you’d unlock them as you do missions, but they’re all unlocked here).
Another Ludum Dare is upon us! I’ll be jamming and making cool things with Andrew Brophy and Josh Bradbury this weekend.. :D
In other news, Tychaia is coming along nicely. Harvey and I have made significant progress since the last Redpoint blog post. There’s a website about the game and we’ve been posting cool pictures in the development logs, such as this one which is a 1920×1080 rendering of the 3D terrain:
Harvey is almost at a point where he’s got town and city generation working (this is very complex with an infinite world!) I’ve also started a 9-5 job which means that my progress will be slower, but hopefully we can make steady progress over the weekends. We now also have a Google+ community for the game, where you can post ideas and other content (link is on the website).
Also, according to some of the things I’ve been investigating over the past few days, it might be possible to get Tychaia running in the browser with JSIL. We’ll have to pull out all of the stops in the optimization department, but if we can get it working, it’ll be a huge boost to accessibility and reach of the game.
We have a lot of independent game developers in Melbourne and they all have something interesting to say. But keeping up with everyone’s individual blogs when you want to keep up with what’s going on is a little bit difficult (especially because there are so many indies!)
This site collates all of the blog entries from any Melbourne game developers who are participating and highlights their best blog posts that focus on both game development techniques and tips, as well as progress on their latest creations.
Here’s a nice set of Vim defaults for working on C++ code. You probably want to configure your terminal for 256 colors (TERM=”xterm-256color”) somewhere in .bashrc to take advantage of the nicer colours on autocomplete as well.
Tabs as spaces; 4 spaces per tab.
Includes clang_complete (C++ autocomplete).
Includes OpenSUSE vim defaults (much more usable than stock standard Vim).
Ctrl-J and Ctrl-K are configured to move lines up / down.
This is a short update for those that don’t follow me on Twitter. Josh and I are working on a new game called “Tychaia”; it’s a procedurally generated, infinite world, hardcore RPG. We hope to have some kind of official website up in the next few days / week where we’ll be making playable builds available.
There are technical development logs on TIGSource which if you’ve ever wondered how to do a game with an infinite world, are a good resource to have a look at. Since it’s being openly developed (but not under an open source license), the source code and assets are on GitHub.
QUICK! You have 48 hours to make game… but you don’t really know game engines that well and you don’t want to spend half your time learning one.
What if there was a way to rapidly prototype 2D games in XNA without having to actually know the details of collision systems, graphics rendering, etc? And it used Ogmo Editor as the basis for designing levels, so you can very quickly put together and experiment with level design separate from the code base?
Molyjam 2012 was actually my first game jam that I participated in, so I found myself in the odd position of having to make a game in 48 hours but not having anything to actually rapidly prototype with. So after Molyjam was over, I got the source code from Old Man Baby, stripped out the game-specific parts and put together Protogame. It’s been sitting on my hard drive for quite a while, so after being reminded on Twitter about game engines I thought I should probably, you know, actually release it. Continue reading →
So now that university is over for another semester, I can get back to working on awesome things like GAMES. So here’s a recap of everything that happened in the last 3 months.
This was pretty awesome (getting to work with Andrew Brophy and all). We made a game called “Old Man Baby” and it turned out quite nice (and Andrew remade it in Flash). I plan to release the engine from this as a rapid prototyping 2D game engine so expect a blog post on this soon.
Ludum Dare 23
Harry hosted the 23rd Ludum Dare in Melbourne, which my university team and myself filmed for our major video project and yes, we had a film subject in a games course.. You can watch the documentary below.
Andrew, Matt, Josh and I are sort of working on a game for this as well, although at this point we probably won’t be anywhere near complete at the deadline. Oh well, long term projects! :D
In case you missed IGDA last night, Andrew Brophy and myself are running a TigJam here in Australia. It’s completely free, so if you like making games and you’re in Australia (or crazy) you can register at http://www.tigjam.com.au/.
I think that pretty much covers the last 3 months. I’m going to try and actually get back into making blog posts now that university is out of the way for another 2 months!
SIDE NOTE: I just realised that all the things that happened in the last 3 months are game jams. This is awesome.
I finally got sick of watching everyone else go to GDC without me, so here’s my goal: Save up $6000 to go to GDC 2013. I have a big note on my desktop that’ll continuously remind me of how much I have left to go and there’s also a progress bar on the side of the blog so people can nag me at IGDA meetups if I need to my act together and earn some more money :P
Can I do it? I don’t really know. Theoretically yes, but whether that turns out to be a practical yes, well, I guess I’ll find that out over the next 12 months.