2015-05-16

What I've been doing recently

I've been adding graphics features into my new engine slowly because I don't want to write a lot of code that will be replaced by newer APIs. Regarding that, I made an iOS branch into GitHub and I'm learning Metal and already got a textured quad to render. So far the best resource for learning has been http://metalbyexample.com. I also installed Windows 10 preview and VS 2015 RC into my secondary laptop and are learning D3D12. When I have more experience on D3D12 and Metal, I'll merge my renderers into the master branch. I'm also waiting for Vulkan and reading Mantle documentation until it's out.

Writing only engine code would not be so productive, so I'm working on two small games at the moment. The first one is a desktop FPS made using Unity 5.

Some of the assets are downloaded from sites like https://freesound.org, pamargames.com and cgtextures.com but some are done by myself. While the level design/art design/balancing is amateurish, I'm paying special attention to polishing feedback like dealing/receiving damage, transitions, sounds, bullet holes etc. When the game is ready, I'll put the player into my website along with the project folder. I also ditched the built-in MonoDevelop in favour of Xamarin Studio which is faster, but Unity overrides my formatting options.

My other game under construction is a roguelike using my own engine.

I haven't decided on the final design or platform. If my iOS/Metal renderer advances quickly, it would be nice to test the game on my iPhone 5S. Using my own engine for a game development has been productive since it has uncovered some bugs that would have bitten me later on otherwise. Also the new engine's component-based game object system has been nice to use in this game. Some of the used components are TextRendererComponent, SpriteRendererComponent, TransformComponent and AudioSourceComponent.

Next steps in my engine will be a virtual filesystem which enables faster load times by packing multiple files into one. While making the iOS port I'll also be writing NEON SIMD matrix operations. I'm also making a multi-platform scene editor using Qt and its first version will be included in the next engine release.

4 comments:

Anonymous said...

You haven't added any 3D stuff yet?

Timo Wirén said...

@Anonymous: Every time I create a new engine (I don't even remember how many engines I have written before this engine), I start with a minimal, solid core and then expand from that. It just makes sense to create 2D, scene graph, font rendering etc. before adding 3D rendering and in the case of this engine I'm also working on a level editor. I have made one release of this new engine and will soon make the second which adds iOS and Metal support. The third release will have a 3D renderer.

Timo Wirén said...

@Anonymous: My previous engine that I stopped updating near GDC has a full-featured modern 3D renderer and I aim to add most of its features into my new engine: http://twiren.kapsi.fi/aether3d.html

Anonymous said...

That makes sense. Keep up the nice work. It is sort of an inspiration for a amateur engine programmer like me.