June 2021 Update

June 1, 2021 at 1:24 pm

Good progress. I now have my simple boxes as entities in my ECS World, spinning using systems (functions operating on entities), and even have some UI elements in the same world being drawn by my UI system. There's still a lot of awkwardness everywhere but it's definitely starting to come together.

As a bonus, I started exploring using libclang to parse C++ and generate additional C++. I plan to use this to generate serialization logic for all entity components that needs to be saved as part of a world save (map saving/loading), and/or sent over the network for multiplayer. Macros can only go so far.

May 2021 Update

May 1, 2021 at 10:35 am

Nothing exciting to report but I did make some progress. I worked on the job system mostly. I tried to make it less CPU hungry, especially on Linux. I can't say I was successful but progress was made.

For May, I really want to try and put all these systems together for the first time. Aiming for a simple test scene. A lot of bets to settle.

April 2021 Update

April 1, 2021 at 10:27 am

We saw. I didn't get as much done as I hoped this last month. Got distracted by some timelapse project issues (a failed hard drive). Also, got distracted by trying to build against a standalone version of Visual Studio's Build Tools (instead of the installed version). Was harder than I anticipated and CMake fought me every step of the way. But that is now kinda working now.

I did get some validation on and finished the core of my command buffer framework that I'll use throughout the game engine. I had a specialized version for the graphics backend already but now I have a generic (and superior) one I can reuse.

March 2021 Update

March 1, 2021 at 3:17 pm

I made good progress this February on my home-grown ECS framework. It's actually functional, to my surprise. Now that I know what's going on under the hood, I have a lot less reservation in basing the engine on top of it. I also figured out a descent way to integrate it with the existing multi-frame flow where each frame is a snapshot of the entire application state and can be operated on in parallel.

I hope by next month to have the whole application flow figured out, including the use of my ECS framework. It will be the first time I can start moving forward again and start building actual game features. We'll see.

February 2021 Update

February 1, 2021 at 9:36 am

Slowly coming back to being productive. Started a new position at work which has been taking a lot of my energy last month but things are stabilizing now.

I did get some work done on Synekism. Mostly still trying to decide what I will do for my object/component data structures and patterns. I know I said before that I will not be using ECS (Entity Component System) for this but I'm exploring it again now.

Whatever it will be, it will be something I write myself. It must be something I'm very comfortable with and I find it easier to fully understand a system if try to write it myself. It will definitely not be as good as using an established system but at least I'll understand what is happening.

January 2021 Update

January 1, 2021 at 2:08 pm

It's been a strange holiday. Family matters required me to postpone my original plans to work on Synekism. Not much more to add. Hopefully next month will get closer to normalcy.

Hope 2021 will be at least a little better than 2020. Not a high bar.

December 2020 Update

December 1, 2020 at 5:12 pm

A slower month than usual. My day job has had me working more before the holidays and some vacation time (which will be used for Synekism, mostly).

What I did do is further refine my plan for the core iteration loop of the engine. I'm definitely over-engineering it but at this point I'm committed to making it work. The key features I'm struggling to shove in one box are: strict modularity, message-based communication between modules, and multi-frame processing (sim computes current frame while graphics renders previously simmed frame).

I also decided to drop ECS (Entity Component System) from the mix. It was starting to feel like an academic challenge and I've already indulged in too much such challenges over the decade of this project. I will just hand-optimize the layout of the game state myself.

Last but not least, I decided to "hire" a consultant (my friend) for a while to help me out over the next few months. I'm mostly going to borrow his brain for some of the harder (and more academic) challenges I'm facing.

This is the last update for 2020. Wonderful year. Happy Holidays to you all and see you in the new year!

November 2020 Update

November 1, 2020 at 12:46 pm

My engine has a UI system, finally - at least the rendering and event handling parts. UI creation and bindings are next. Also managed to migrate my original Synekism camera navigation into the new codebase and started exploring an ECS library for the main simulation loop. Overall, good progress.

October 2020 Update

October 1, 2020 at 11:29 am

The month started with the tail end of a long vacation so progress was good. After going back to work, I've had some more trouble finding time.

That said, what I did manage to do was to overhaul the way I abstract multiple backends for a subsystem (ie. directx, vulkan, metal, backends for the graphics system). I also now have a satisfactory application flow pattern I can built on top of in a modular way. The rest of the time was spent on growing my graphics backend out of the tutorial code stage and into something I can use to build content on, starting with the UI system.

September 2020 Update - 10 Years

September 1, 2020 at 11:39 am

It's been 10 years since the first release of Synekism: September 1st, 2010. The original Synekism was made by three of us in one short summer with zero clue on how to build anything. And it worked, somehow. For a short while after, updates were consistent. At some point, I even added multiplayer support (never really released this).

I wish I can say how far Synekism has come since 2010, but I can't really claim that. In fact, the current build of Synekism is a few triangles spinning on a black background. There's no UI, no gameplay, no camera controls, no world. I can say that "life got in the way" but it's not really that. What happened was that I learned a lot about game engines and general coding hygiene. This has made me question earlier decisions and led to what is now the third complete rewrite of my completely custom special-snowflake game engine.

If you look up the Wikipedia page on "Anti Pattern", I still suffer from the top three Organizational anti-patterns: analysis paralysis, bicycle shedding, and bleeding edge(ness?). I have a bunch of high-level industry-wide game engine patterns I learned over the years and I can't help but try and mash them all into my tiny little engine.

With that lovely retrospective out of the way, let's look at the future. I've tried to avoid setting goals publicly since about the first complete rewrite. But today is different. I'm setting myself a hard goal. As mentioned in my last update, I will be focusing on a simpler RTS-style multiplayer game for the next little while. The point being that I get to mature the core engine while working on a real product. So on this game, I'm giving myself until September 1st, 2021 to complete it and publicly release it on Steam.

To be clear, Synekism is still the long term plan. Most of the work on this new project will benefit Synekism as all core engine code will be shared between the two games.

Well, there it is. I haven't decided how much and when I'll share more on this new game but will do so over the next few updates. With this deadline, I hope to (better have) a playable build by the end of 2020.

For the 4 of you still reading these, thank you for sticking around! I'll get there eventually. :)

Fetch Older Updates

v0.5.5.90 - September 1, 2014


Synekism is an attempt at a modern city simulator rooted in procedurally generated content. The project was started in 2010 to address some frustrations with the city simulation video game genre. It is actively developed on and currently in a purely alpha-experimental stage. Updates on the project are posted on the first of every month. Note that work on this project is more or less done by one person so progress will be slow, but steady.

The game is a sandbox where control is not explicit but indirect. The player can designate residential, commercial, industrial, and government zones and watch them grow, instead of explicitly plopping each building manually. The game tends to lean towards macro-management.

The key features of Synekism include grid less 3D environments and procedurally generated buildings. The lack of a grid results in total freedom when zoning and building roads allowing for more realistic looking cities. Procedurally generated buildings allows for more visual variability. Instead of querying a finite list of static models, a building is generated uniquely upon creation using local as well as city-wide conditions.

Contact Email:


Support Email:



Synekism Google Group

Follow Us On: