Valmeria - Villages and Cities

Valmeria - Villages and Cities

Remember the good old games by Impressions, then Sierra, then Vivendi? Caesar III, Pharaoh, Cleopatra, Zeus, Poseidon and Emperor?

Valmeria - Villages and Cities aims to become a game in that tradition.

You build cities, produce many different goods to satisfy your people and trade with others, you produce weapons and military to protect your cities and help other defend theirs, or to expand your realm. More detail will follow soon.

At least the current versions of this game will be freeware. I have not decided yet about anything that might follow: this development will take its time, really, so how can I decide now what might be relevant in a few years?

This site may not look fancy, as many other sites do. The simple reason is: I can spend my time making fancy websites, or I can spend my time creating a good and fun game, but not both. I choose to go for the game and not the website.



Valmeria - Villages and Cities will be built upon a number of open source libraries, the first being Allegro 5. But there are more: alguichan replaces guichan, which is not supported any longer. Add lua, freetype, libjpeg, lpng and lzip for now, and physfs, ogg and vorbis for later use.

Completed features

  • Basic (technical) features:
    • Different types of houses with different levels, requiring goods and servies to be delivered.
    • Service providers to distribute services to houses.
    • Manufacturing sites where goods are made from other goods, or goods are harvested, mined or whatever.
    • Markets that distribute goods to the houses.
    • Storage yards that help distributing goods.
    • Decorative stuff that increases desirability in their vicinity.
    • Buildings wear down and need material distributed by a builder walker as upkeep.
  • What this means in terms of the game:
    • Farmers and Craftsmen houses with levels up to 19 and 14 resp.
    • Available goods: water, leather, fur, hemp, ropes, lumber, timber, sand, grains, flour, stone, clay, charcoal, pottery, bread, fish, apples, shoes, baskets, hide, wood statue, stone statue, vegetable, meat, honey, herbs, alcohol, iron ore, copper ore, tin ore, silver, gold.
    • Available services: healer, fortune teller, juggler, tavern, gardener, barber.


  • Basic and technical stuff:
    • Porting to Android to run on a tablet.
    • Use of hardware acceleration using Allegro 5, i.e. based on OpenGL or DirectX. This enables use of 3D for the houses, making some things simpler. Also enables an easy implementation of height and sloped tiles.
    • Heights on the map, see above.
    • Configurable keyboard mapping.
  • Game elements:
    • World map and trade with all regions.
    • Noble housing. Nobles don't do any work, but consume goods and require services. Most probably they provide gold, and they can become knights which are the elite part of an army.
    • More goods: clay bricks, bronze statue, wine, grapes, and more. Weapons.
    • Fortifications: Walls, towers and gates to protect the city.
    • Military: Knights, but also maybe mercenaries, and maybe you can call the citizens to arms as well (of course production will be stopped if you do that).

Developer Diary

  • 2015/02/02 There's a new world map of Valmeria:

    and with that, the game will change a lot, starting with the name: The world map will replace the current menus for starting a new game or loading an existing savegame. Instead, there will be a lot of region names on the world map, and you play that region. All of the regions are savegames, and they all take part in the world market and they also may be part of a mission that sets goals for that region. So you will be able to play any of the regions at any time, and export goods in one region to import in another.
    This will take some time to complete, so enjoy the latest version below and stay tuned.
  • 2015/01/18 All new graphics for houses now, no more programmer's art. I hope you like it!
    More features include an UNDO for building. If you build a new building, then for some time this can be undone. This is indicated by a recycling icon. Right click to open the dialog window, then you see a button to undo. If you just delete the building, then if UNDO is possible, instead of deleting and paying you will get back the cost for building. Once the building has started to be functional, like producing some goods or sending out a walker, or a house going up a level, UNDO will not be possible any longer.
    Any production or service building can now be disabled (mothballed in Caesar IV). Workers are set free and production stops, no goods are requested any longer. You can use this for catastrophe management, when a part of you city is going downhill and you need to make sure that markets and basic distribution remains staffed.
    Storage yards have a new mode of operation: They can be set to not distribute goods locally. In this case, they also don't accept goods locally, and they use a reduced workforce. You will use this for transit station/storage villages, which should be very small and require only a few workers.
    Download here.
  • 2014/06/14 Advisor menu looks good enough, so here's an updated version, before I add more stuff (I'll try to add some undo-function for the next update).
  • 2014/06/11 New advisor menu is almost done. This screen shows current ratings, a collection of messages with hints about your city, and a balance sheet including all costs and income of your city.
    Also fixed a bug that causes the goods buttons of the overview map to be invisible in some situations, due to a missing update.
  • 2014/04/26 Finally there's a new version, and an update for the 0.11.1 version as well.
    The update fixes the display bug with wrong clipping of buildings and walkers. Download here.
    Then there's This version has a number of balancing changes that came up during playing the 0.11 versions. Some buildings have been removed, and the menus are hopefully better ordered now.
  • 2014/04/18 Added some more detailed info about income and costs in different areas. With this, most of the incompatible changes are done, so the next version comes closer. The balance sheet needs to be displayed of course, and the balancing changes need some testing.
  • 2014/04/13 Finally I found a nice solution for the clipping which was wrong for a long time now. I thought it would make saves be incompatible, but in fact this solution works without changing persistent data structures.
  • 2014/02/05 Two important changes: One is new messages when a building collapses, and the message will have a "goto" button which scrolls the map to the location where it happened.
    Second is that houses on the housing overview map is colored according to housing level, yellow is low and turquoise is high.
    A smaller fix is a better message for the builder when some of the goods there are not needed within that builder's reach, and the build button should say how far the builder can go.
  • 2014/01/30 Another small update, this one has performance on huge cities improved. Everything else seems to be reasonably stable right now, so I'll start with more new stuff.
  • 2014/01/25 Fixed an (oh so tiny) bug in the target finding for warehouse walkers, which shows in two ways: One is sending stuff back and forth between two warehouses, that should be rare now. The other was distribution issues (stuff not being sent to where it's needed) if many warehouse walkers were spawned to just distribute almost anything along the warehouse network, like an overloading effect.
    Overview menu should also be properly updated when new building types are present or buildings had been deleted.
  • 2014/01/23 Here's an intermediate version, but I feel it's important enough to get this out.
    If saves are renamed and the name is too long, there was a crash in the load screen.
    The builder's workshop is renamed, and doesn't need wood for maintenance any longer. Existing saves are adapted to this.
    There's a map display mode which shows almost all buildings transparently, so you can easily see all roads. This is toggled using the 't' key, there will be a button in future, too.
  • 2014/01/21 Thanks to many testers playing and finding strange things, I could nail down a few more bugs around the deletion of buildings. I really hope that it all works now. Moreover, there is some repair in the load function, so most of the saves that were not loadable with the previous version should be fine now. In some cases there may be corrupt walkers, they look like just sitting there and not moving. Another save and load should get rid of most of these.
    Ruins of houses that were saved weren't loaded correctly, instead they looked like a fresh building place. That's also fixed.
    Numpad + and - keys should work now.
  • 2014/01/19 There are problems with deletion of buildings. More specifically, deleting a building that has walkers that have this building as a target. If a save game happens immediately after you delete a building, or you delete a building in pause mode and then save the game, it's almost sure that this save game cannot be loaded. There's no easy repair for that case, unfortunately.
    So today I managed to get some of the problems fixed: If you delete road tiles, the game should not crash any longer. For buildings that are target of walkers, like warehouses or markets, deleting should work well enough if you don't delete in pause mode. The repair code that I added for .14 was incomplete, that should also be complete now. If you see goods not moving, they should eventually go away and new walkers should be spawned instead.
    What is not yet solved: If you delete and a save happens immediately after that, the resulting save may not be possible to load. That's why the version number is .15, there's more work to be done.
  • 2014/01/18 Fixed a bug that renders production buildings unusable. In addition, there's a repair routine that fixes saves from, where the bug was introduced.
  • 2014/01/16 Some smallish fixes this time, improving colors on service and builder overview maps, adding a production overview showing where input goods are lacking or production output is very high.
    There additional info text saying how far walkers can reach, and the limit of non-housing tiles they do not walk: This is a feature of most market and service walkers, they want to stick with houses and not walk along road tiles that are not adjacent to a house. So there's a limit, and this behavior can be used to separate areas of concern for market and service walkers, just leave a gap of, say 10 tiles between housing areas.
  • 2014/01/06 Main improvement with this update is nice housing for lower level houses. Looks so much better, so I'll definitely continue to draw more houses.
    Fixed a crash bug related to deleting and immediately rebuilding a warehouse, market oder production building. The bad thing was that the crash only happens a moment after you did it, so the only way back was to load an earlier autosave.
    Minor improvements in the overview maps. The road overview also shows walker problems, the workforce overview shows work related problems (colors were not right), and the attractivity map also shows ruins.
  • 2013/12/30 Numbers are better now, it's either counting items or it's counting shipments if it says so. That makes most numbers now much more reasonable.
    Many more beautifications: there are now icons on the map instead of the rectangular bars, and there are some more drawn graphics and added details.
  • 2013/12/26 More balancing adjustments. The big luxury market only sends one market lady now, that is sufficient anyway. Luxury warehouses can now also store gold. There's a new type of warehouse for metal ore and such, but that's not yet needed by anyone.
    Milk production is a bit slower now, so you may need some more cow runs.
    Tax income is increased.
    Some buildings are marked as deprecated, because they will be removed in a future version, but not before 0.12. So they can be loaded from a save game, but they cannot be built any longer.
  • 2013/12/23 Here is an important bugfix, that makes savegames unloadable when you have built things on areas with roaming sheep. Now this version contains not only the fix but also a repair for this.
    Then we have a little bit more information about warehouse situation, and added info about the effect of buildings on desirability. Did you know that some production buildings actually increase the desirability? It's the show maker and the rope maker, or the fruit orchard, for example...
  • 2013/12/22 More improvements on the overview map, and a better organized right side menu for that.
    Most important is a new map to play on: "blackforest". This is a new style of map that also shows a new terrain type "wasteland".
  • 2013/12/14 Seems that the 0.11.1 download did not contain the right executable. So here's the fixed installer.
  • 2013/12/09 With all the detailed testing going on, there are a few changes now. One part is an enhancement of the overview map, and some clearer messages about production in game. That affects only what you see, not what happens underneath.
    This is about production, one view is the whole region you play. Here we have a maximum possible production, which is what the buildings can produce if they are fully staffed and fully effective. Then there's a maximum consumption, which is what the buildings can consume, provided all what they produce is really needed.
    In addition to these, there is the map now, which shows where goods are produced and where they are consumed. This can vary in different parts of the map, and the overview shows where is what. This works using the warehouse network, and the warehouses also function as an information hub about local yield and use of the goods. This is now the basis for messages about local availability of goods.
    Then there are some minor balancing tweaks, which you also should get and play with. They do affect the game though, but they are fully compatible. One change is that the decay of services for houses is slower. I want a service provider to be able to service at least 2 long roads with houses, better 3 such roads. That should now be possible, so it will be somewhat easier to cover an area with a service.
    A second change here is an increase in the number of walkers that a warehouse can use. If there are many goods stored, a higher number of possible walkers helps to get goods all over the map.
    This is a rare occasion to have two similar versions. If you're not sure, use the newest. If you want to compare how things worked before and after the balancing change, use both versions and tell me if you like the changes or not.
  • 2013/12/01 Improved overview maps. Now they show what houses need, this is for goods and services and the builder. This way, not only the warehouses indication tells you in which area there may to too much / too little of something, but it also shows you this down to the houses.
    Even more important is an internal bug fix which could cause truncated autosaves and empty lastsaves. The reason was that when you leave the game, then if you're unlucky, the autosave collides with the lastsave, which firstly causes the lastsave to be empty, and secondly could also truncate the autosave. This should not happen any longer.
  • 2013/11/28 This update brings the overview map. The overview map is an extra screen which allows you to deeply analyse your city and find problems, so you can improve your city. This is a bit of work in progress, as finding the right way to visualize something in your city is not always easy. So there will be improvements of the overview maps, like making them more interactive, but this update is important enough to ship it in the current state.
    Besides the overview maps there were some smallish fixes, as always. Nothing too important.
  • 2013/11/01 Fixed a bug related to warehouses going into ruin and not deleted quickly, that got some things messed up including possible crashes when the ruins were deleted later.
    Markets were looking for demands in a way which was not consistent with the market walker behaviour. Market walkers do not walk far when there are no houses, so leaving gaps between houses helps to separate areas. Demands have to be determined accordingly. In addition, the reach of market walkers has been increased.
    Tax collection was slightly buggy, leading to very high tax income. This has been fixed, and tax income has been reduced as well, making a difference between housing types. Craftsmen will pay more taxes that peasants.
    There's an updated readme, which is also translated into english. I hope this helps to get into the game.
  • 2013/10/10 Renamed storage to warehouse, seems to be a better word here.
    Reworked the distribution scheme that govern the walkers between warehouses. Now distribution of goods between warehouses should be much smoother, no more goods going back and forth, and goods should be pushed all across the whole map, if necessary.
    Jewelry production was much too slow.
    Roads can now be built onto ores.
  • 2013/10/05 Some smallish fixes. Houses of craftsmen didn't pay taxes, some strings had to be improved for clarity. Simplified the Pause function, so pausing the game should work better now.
  • 2013/09/12 Added a number of tutorial kind of in-game messages. Hope they help to get started, especially for those who are new to this game.
    Then there's a re-write of some path finding code, which mostly affects storage walkers. They can go farther than before, which helps to avoid many very small storage-yard villages.
  • 2013/08/20 Double click ASSERT issue solved. The second mouse event will just be ignored.
  • 2013/08/19 Two small fixes: There were some erroneous error messages during loading the game, that is resolved. Nothing to worry about. The second fix is that you couldn't place copper, tin and gold mines.
    There's one issue: When you build something and double click fast enough, there will be a crash. I'll think about how to solve that, it's not a new thing though. For now, just avoid (double) clicking too fast.
  • 2013/08/18 One more important change is included: Walkers that attend to houses, like market and service walkers, will keep walking along houses, and not walk long distances elsewhere. This should help to keep separate villages separated from market and service distribution.
  • 2013/08/11 Very close now. Found some more bugs related to goods and material distribution, like stuff going into houses that cannot evolve anyway, which just wastes things. Now building up to level 18 works fine, as explained earlier... for level 19 I need gold which is not available on that map.
  • 2013/08/06 Turns out that getting 19 level for peasant housing and 14 level of craftsmen housing properly balanced is more difficult than expected. So to make balancing easier I changed multiple production to use a separate production rate for each produced goods, and it makes things a bit easier.
    The main change to earlier version is, however, that with the current settings it will not be possible to level up all houses on a region map to the maximum level, simply because the workforce needed to produce all the necessary goods is not large enough.
    This leads to building some smaller villages to support a city, where the houses can then be maxxed out. I must admit that I really like this idea...
  • 2013/05/29 Did a whole lot of experiments with housing of different sizes. Like having peasant housing in sizes 2x2 and 3x3, as well as craftsmen's housing. Seems that this all doesn't really add to the game play, so I'll leave this as it is. Maybe it helps to have more craftsmen and not soo many peasant requirements for workplaces, so both housing types become somewhat more equal in their numbers.
  • 2013/03/24 Despite very busy times, here's a new update. Mainly new graphics by guinan, plus lots of internal cleanup, which is all about preparation for the next changes.
    Next changes will be about houses: Planned in up to level 20, which makes for many new images. Then there will be an experimental thing about houses in 2x2 and 3x3 for the same type, just to see how that works out (in terms of game play). With the many levels there come new goods to produce and consume.
  • 2013/01/05 New version to play around with.
  • 2012/12/30 Finally implemented a proper loading screen, showing some progress during loading the game data, the map, savegame and whatever else is happening. Also a lot of reorganization of code behind the scenes, some things are considerably easier to write down in code now. Also, the improvements of the UI are complete, so there will be a new version to download soon.
  • 2012/12/26 Upgraded lpng from 1.2 to 1.5 and freetype from 2.3 to 2.4, failed to upgrade lua 5.1 to 5.2 because they changed how to access global variables.
  • 2012/11/11 No big progress, but continuously working on improving the UI.
  • 2012/10/16 TM announced a new city building game, also set in the Middle ages: Medieval Mayor. I'm very curious how this is going to be... and how this will turn out in relation to Villages & Cities.
  • 2012/08/16 More images made by guinan, some rebalancing, and minor bug fixes.
  • 2012/07/27 Same thing can happen with other buildings, so there's also repair for production buildings now. Please do not play with older versions, instead, use this one.
  • 2012/07/22 Another bug fix. This one had a more complex root cause, but made certain save games unloadable. Root cause is hopefully fixed, and a repair function has been added to be able to load defect save games to continue building.
  • 2012/07/15 Two more bug fixes: One change introduced a bug which allowed certain buildings to be built onto water. Another fix is, that all walkers now use the new path finder, so it should not happen any longer that walkers vanish because they are unable to find a path, if such a path exists.
  • 2012/07/11 More changes to the balancing. It's highly recommended to start a fresh game. Also, guinan has drawn a series of sheep, so sheep are now roaming around the shepherd's hut.
  • 2012/06/28 Another bug fix, and more importantly, changed requirements for housing, for a better balancing. This is to be play tested, of course. Save games are not compatible, so players have to start a fresh game.
  • 2012/06/14 Important bugfix for houses that level up to 3 or higher, but then level down to 1 again, that will trigger an assert.
  • 2012/06/13 Here we go, new version. Saves are not compatible, too many things have changed. Most important change is the new builder: Most buildings wear down and thus need some build material every now and then, distributed by the builder from his workshop. Buildings other than housing have material in stock, so they will need a visit by the builder after some time. Houses however need material to level up, so in the beginning it will be necessary to over produce lumber, just to give some hint.
    The game uses the common directories now under Win XP etc, so the game should properly run without admin rights. Saves and log files are stored in "My Documents/Villages and Cities".
    Other smaller changes are that the healer does not need herbs, and there are many more things to produce and consume. An additional service is the barber, which is needed for better housing.
    One of the next big changes is the introduction of the world map and trade, the first traces of that can be seen as the background of the menus...
  • 2012/06/03 Builders and material distribution complete also for housing types. Now some more testing and a few other planned improvements, like showing a world map on the main menu instead of plain colors.
  • 2012/05/28 Got a lot done during the long weekend. Material consumption is now enabled in all building types except housing (which wirks differently), and normal upkeep works fine. There is one todo left when things go down and a building is destroyed then, and of course the same has to be done for housing now.
  • 2012/03/31 Most of the new builders is in place now. Even if it's only for production sites, once it's really running well, it's not too much work to put the new stuff into the other building types as well, i.e. services, decoration, markets and of course housing.
    Some people are porting the allegro library to Android, so there's some chance to port this game to a tablet, too. I will definitely look into this later this year.
  • 2011/10/30 Small fixes, updated graphics (courtesy guinan) and a large additional map (by Kevin). Most probably this is the last of 0.9.5.*, as I'm working on some major next feature.
  • 2011/07/31 Bugfix, you should not be able to build houses on top of each other.
  • 2011/07/23 Savegames are now compressed, sand pits can be built on sand. Some images of buildings look nicer.
  • 2011/06/25 Bugfix which affects balancing: Houses did consume more than intended, due to a rounding error. In extreme cases houses could consume 4 times the configured amount, in theory it could even be more. Some production and consumption has been tuned, and storages send out 7 walkers instead of 6 to help distribution. On the minimap, the really severe problems appear blinking, less severe problems are just red.
  • 2011/06/23 Bugfix which prevents hangups in long games. Screenshots can again be taken using the Printscreen key, or the F4 key. Slightly increased production outcome of furrier and charcoal maker.
  • 2011/06/22 Add mini map, to be toggled with key 'M' or the new button at the top left. More smaller performance fixes, and a lot of re-balancing, which should lead to fewer prod walkers running around (i.e. goods). Making the individual goods more efficient not only reduces the number of walkers, but also makes the storage system work better.
    This version is built with Visual C++ Express 2010, so you need to install the "Microsoft Visual C++ 2010 Redistributable Package" from Microsoft (if you don't have it already installed).
    Known bugs: It seems that the "Printscreen" button does not work any more, I'll have to look after this. If you build many storages, distribution of goods is not good, i.e. it may happen that goods are not transported to where they are needed.
  • 2011/06/07 Found performance bug, which affected path finding of walkers. Should be considerably faster now.
  • 2011/05/15 Added more output to the overview windows. Now you see the number of each type of building and walker, and summaries of these.
  • 2011/05/05 More bugfixes.
  • 2011/04/30 One bugfix, one improvement: On a fresh installation, the msg.ini wasn't correctly created. The improvement lets you see what you have on the tile where you point the mouse at, by showing those images that would hide that spot transparently.
  • 2011/04/21 Porting to Allegro 5 is done. The remaining problem about incorrect phantom objects showing where the building is going to be placed was actually introduced earlier and went mostly unnoticed, or better, tolerated to be fixed later. Which is now, but only with a workaround: Instead of showing only the building at level 1, now the game shows the ground area. So you don't see what you build (you have selected this a moment ago from the building menu), but you see exactly how big it will be and where it will be placed. Red shade indicates that the thing can't be built at that place, for whatever reason.
  • 2011/04/03 Porting is almost complete. Everything works now, there are only minor differences in how some things look like, which have to be changed a little bit. The new lighting model of Allegro 5 makes some things more difficult, but other stuff becomes easier... I expect a new version for some technical testing this month, before I go into adding really new features again.
  • 2011/02/06 Working on porting everything to the fresh and new Allegro 5.1 library. This is quite interesting, many things have changed, but it also opens a lot of nice opportunities: Use all hardware acceleration one can get, use "real" 3D for the display of the landscape and all the houses, maybe more graphical eye candy, as I see fit and learn to use lighting and shaders and all that stuff.
  • 2011/01/05 A fresh installer does not deliver outdated and unused runtime DLLs any longer. Instead, you have to have Microsoft Visual C++ 2008 SP1 Redistributable Package (x86) installed on your PC, which you can download from here.
  • 2010/12/05 First version for 0.9.0 ready to try. Please uninstall a previous version before installing.
  • 2010/11/28 Long time no update... been busy implementing real maps, so the map is now read from a color coded image file. This is mostly complete by now, so I think I should prepare another version before Christmas. And before I start changing everything, because the whole thing has to move from Allegro 4.4 to Allegro 5. The disadvantage is that it's a big change, virtually nothing remains like it was before (technically). The big advantage however is that hardware acceleration is just built into Allegro 5, so making good use of DX or OpenGL is very easy then.
  • 2010/05/21: (Rev 248) Version ready. Another important bug fix, another localized language text.
  • 2010/05/04: (Rev 242) Small but important bugfixes, and all dialogs for the different building types completed, including possibility to request workers and enable / disable individual goods at each market.
  • 2010/04/03: (Rev 238) Busy implementing dialog boxes for each type of building. It should be possible to enable and disable individual goods on a market to get some fine control over what goods will be available in the vicinity of that market.
    Maybe even more important is the possibility to request more workers at one building of there are too few workers available and the player wants to make sure that the building can operate as needed. Unfortunately this led to the discovery of some deeper bug in the workforce assignment routines, which I have yet to find... so the next version will be available later than I initially hoped.
  • 2010/03/17: (Rev 233) Version contains two changes. One is a bug fix: Deletion of a tile which has a walker on it triggers an internal assertion, causing a crash. Now the walker either can continue his path, or is deleted.
    The other change removes the possibility to store water in the basics goods storage yard. Water has to be fresh, to be used for the bakery or by the gardener.
  • 2010/03/14: (Rev 227) Version 0.8.0 is available for download. Storage walkers are now fully functional, so goods distribution across the map, using a network of storage yards, should work fine now. This enables 'real' building for the first time since I started this project.
  • 2010/03/07: Storage walkers implemented. This means that goods are now transported between storages, across the map. Demand and supply are automatically computed along the network of storages, and transported as needed.
    Some rework of the path finding algorithms involved is needed, to make sure that walkers target the 'right' buildings. Whatever that exactly means - it should make sure that goods and services arrive where they are needed, and not too late.
  • 2010/02: Family events.
  • 2010/01/06: Extended the data model to use more than 50 different goods to harvest, produce and consume in the game. Not counting weapons and such.
  • 2009/12/29: (Rev 168) Version introduces one little addition: right click on a building shows the info box, another right click closes that info box again. Later, this box will give some options to configure storage yards, or adjust certain parameters of a building.
  • 2009/12/19: (Rev 163) Version ready. There is one notable change, on the main map, try to hold shift while you're moving the mouse pointer to see the difference.

  • 2009/12/06: Deco elements consume goods now, which is necessary to produce attractivity. Without goods supply the generated attractivity will be less. An example is a garden that needs water.
    Services also consume goods now, walkers are only sent out if goods are available, and these goods are used to 'produce' a new service walker. An example is the healer who needs herbs, or a gardener who needs water and seeds.

  • 2009/11/16: Preliminary implementation of storage yards. They can receive goods and send out prod walkers to distribute goods in individual lots. The difficult part is to connect all the storages with each other such that goods are distributed automatically, even across the whole map... which opens more questions than I have answers for now.
    There will be another build in december, even if storage yards are not fully implemented at that time.

  • 2009/10/18: New property for walkers: Each walker can be set to use only roads instead of using all walkable tiles, with a preference of roads. So as a consequence, if some walker can only use roads, the building that sends these walkers out must have road access to work.

  • 2009/10/12: Some bug fixes: to be downloaded.

  • 2009/10/04: The improved version is ready for download.

  • 2009/09/30: Currently I'm working on an improved version, which contains an extended data model, including various new goods, plus a few bug fixes. Meanwhile, the server has moved and will be joined with the city building portal - there are some pieces missing however, so that will take some time. We're also busy giving the final touches to Heike's Rechenmonster project, so get ready for some math trials soon.

  • 2009/09/03: (Rev 121) A few important bugfixes, found in early testing.

  • 2009/08/31: (Rev 115) Many small improvements, english translations and balancing. This should be the first really playable version, at least the basics of the intended gameplay.

  • 2009/08/23: Reimplementation of triggers. This is something I learned from Caesar IV, and it's also much better for other reasons: No different triggers for any sorts of events, but just one trigger which is called in regular time intervals. This one trigger can then do several things, depending on ingame data. The main important thing about this way of doing triggers is that it should be completely determined by the exact point int time, and that's only possible if the trigger is integrated into the update queue mechanics as any other update which occurs ingame.

  • 2009/08/09: Big milestone: Market walkers are fully implemented now! Why is this a big milestone? Now goods are consumed by houses, so the production loops are closed and there is a sink for goods in the game. So I guess it's about time to prepare another downloadable version, because this is the first really playable thing.

  • 2009/07/12: Caesar IV contest is over, and I learned a lot about what makes Caesar IV fun. In fact, they did a whole lot of things right with that game. On the downside, there are a number of plain bugs which are normally exploited during play and contests, which reveals that doing micromanagement can be great fun. For some people at least. Despite not working on Villages and Cities these days, I have been improving the game framework a lot and started to branch off my own guichan version, decoupled from the main development.

  • 2009/04/26: Decided to play Caesar IV contest. Main objective: learn about what makes Caesar IV such a good game that it is. Will be great fun, but keep me away from programming...

  • 2009/03/12: (Rev 61) New data model and new type of graphics: generated as an additional way to read image files. This has the big advantage of easily creating lots of placeholders in all sizes and colors, which can later be replaced by more beautiful images.

  • 2009/02/01: (Rev 42) Major restructuring: Most of the game framework code has been moved into a separate library, so other games may be built upon that. There are similarities to the gfwk used for The Next Train, so this will be called GFW2. As a difference, there are now elemts of fonts and guichan included.

  • 2009/01/06: (Rev 35) Markets implemented to receive goods. Markets receive and distribute all goods that are consumed by houses. In contrast, storage yards will be able to receive and distribute all goods, including raw materials and intermediate products.

  • 2008/12/25: (Rev 20) New version for download and testing.

  • 2008/12/14: Finally different speeds of walkers on different types of roads works as intended. Needs a bit more testing now, then I'll put up another version to download and play around with.

  • 2008/12/07: Switched to SVN on a local server. This means that counting changes starts with 1 again...

  • 2008/11/02: (CL1099) Several localization improvements, houses and other buildings now show much readable information about their state, what they need to level up, and so on.

  • 2008/10/05: (CL1088) Hinterland is out now, so I decided to put the current version up for inspection, too. Service walkers should work nicely, no goods distribution yet. That will be the next big task. Installer language now sets the corresponding language for the game.

  • 2008/09/21: (CL1076) Service walkers reserve their current targets, they use path caching instead of recomputing everything on each tile, so I would consider service walker complete now. Whoot! There are some reasons why things are going slow, one of them is Spore. Another one is the upcoming release of Hinterland (by Tilted Mill).

  • 2008/08/15: (CL1066) Lots of bug fixing, some really hard to detect stuff... Now tested with two different types of services, looks quite good. Walkers need to reserve their targets however, at least for a short while, to avoid having all walkers always go for the same targets.

  • 2008/08/08: (CL1046) Walkers find their targets now, so random walking is only needed as last resort, when a path can not be found. No real optimizations done so far, so everything is recomputed on every tile - nevertheless, a few walkers run around without any problems. Further testing required now, but then it's a giant leap forward!

  • 2008/08/04: (CL1030) First complete implementation of path finding. There are no further optimizations yet, and walkers only use this to fund their way home, but it works. Next steps include target selection, so that the walkers do better than random walking around to deliver services, proper caching to reduce computation and further smaller tuning of the algorithm.

  • 2008/07/27: Use upgraded versions of libpng and freetype.

  • 2008/06/29: Simcity Societies: Destinations is out. Seems to be a really good expansion, so I'll do some more testing and maybe write a review...

  • 2008/05/01: No updates. Real life is very busy, but I hope that I'll get to work on this again.

  • 2008/03/22: (CL1009) Service walkers do distribute their service to houses now, and houses depend on regular visits to level up. As of now, they do not try to find paths, they just stay on a road if they can, otherwise they are just random walkers: That will be the next major implementation task. Happy easter!

  • 2008/03/09: (CL999) Some bugfixes in saving and loading games, walkers are walking correctly, next will be the distribution and consumption of services.

  • 2008/03/01: (CL983) Dropped OpenLayer support. Using pure AllegroGL should be sufficient, and OpenLayer just adds too much overhead. Also, some test machines do have problems with OpenLayer, while they work properly with agl and pure allegro back ends. Add support for other tile formats, like 4:3 and add functionality for resizing images on load, so using tiles of different sizes becomes much easier.

  • 2008/02/24: (CL968) More than 20000 lines of code by now. First walker movements, mostly random by now.

  • 2008/02/10: (CL954) Switched to allegro 4.3.10, started work on adding walkers.

  • 2008/02/02: (CL943) Minor improvements and internal restructuring.

  • 2008/01/27: (CL937) Improved screen menu for saving games, now including a delete button. Added counter for screenshots and add configuration for screenshot directory and filetype.

  • 2008/01/14: (CL916) Important bugfix, adding current map view position to savegames. Changed major version to 0.4 since that reflects all the changes better.

  • 2008/01/13: (CL912) Saving and Loading is complete. Many checks to avoid loading outdated saves are added into the loader. Reorganized the locations of files, and separated the data model definition scripts from the actual new game creation scripts (which will eventually lead to complete scenarios). There are now two screens with settings and options, and a few of these are saved in a user specific ini File.

  • 2008/01/06: (CL884) Saving and Loading games is on its way. A save will only contain data about objects that are actually used, so that part is not entirely trivial. Loading a savegame is more difficult, though. The idea is to flexibly remap internal indexes if the scripts have evolved in a compatible way, which mainly means that you should be able to load a savegame when you are adding new types of buildings, new goods, new walkers or change any of the trigger scripts. On the other hand, the loader has to detect if you try to load a savegame that refers to buildings that are no longer available and fail with a readable error message. Well, this is work in progress...

  • 2007/12/28: (CL846) Many changelists, few updates. Added a message system to the game. Now the game can write messages to the player, either by dialog box, line at the top of the main screen or not at all, this is configurable for each message type. A later addition will be a complete diary where the player can review all messages and change the configuration easily. The other big thing is the introduction of something like a filesystem: Files are read using special functions which search for the file in configurable directories: application-data, user-data and development-data for those who wish to fiddle with the scripting without wrecking havoc to their installed files.

  • 2007/12/02: (CL802) Christmas season comes closer, and thus all the preparations which are due. Nevertheless, workforce assignment is mostly implemented now. Needs a bit more testing and balancing, but works as intended and provides some interesting gameplay. There will be a download before christmas, but for now I want to do some more testing and some polishing.

  • 2007/11/17: (CL785) Workforce assignment started. Some restructuring was necessary, but now all notifications work as they should. Service and production buildings can now require more than one type of people to work there. This should make workforce much more interesting.

  • 2007/11/15: Simcity Societies is finally in store. Started playing...

  • 2007/11/11: (CL775) Added decorative elements, which also raise attractivity. Fixed openlayer display and added preliminary allegroGL back end. Internal rework of game timing, now the game clock supports at least 8000 years of game time to pass. Added noblemens houses, variants for all houses, replaced graphics for the bakery and added graphics for wood cutter and pottery.

  • 2007/11/04: (CL764) Improved map drawing now implemented. As long as all buildings have square dimensions, the image will be correctly rendered (i.e. without incorrect overlaps). Additionally, the area below the mouse pointer will be drawn transparent, so that the player can see what's going on there, and where things can (or have to) be built. Some restructuring of image and script files has been done, to improve code structure and make additions easier.

  • 2007/10/29: (CL755) Map attractivity is now implemented, and people will immigrate when houses have empty space for them.

  • 2007/10/14: (CL718) No updates here does not mean that I didn't work on the game. In the meantime I have finished to implement the core game data structures and their relations, they all can be loaded with scripts, built within the game and deleted again. There are even some more hand-drawn placeholder graphics for the required objects!

  • 2007/10/02: (CL705) Switch to using lpng1.2.20 and freetype 2.3.5. You can make a screenshot using the Print key.

  • 2007/09/23: (CL702) Minor changes to the way the scripts work, and started to implement the game's core data structures for all game objects. Since these are all related to each other, it doesn't make too much sense to add them one by one, so this update will be a major one.

  • 2007/09/09: Started to draw some graphics to use as place holders for the next development steps. See the screenshot in the corresponding forum thread!

  • 2007/08/31: (CL695) Lauch site about SimCity Societies.

  • 2007/08/26: Been visiting the Games Convention 2007 in Leipzig to see SimCity Societies. Very promising! Made a lot of friends there as well. Though this means that there's no immediate progress with Villages and Cities, I'm motivated as ever to continue this work here. Especially the multiplayer ideas seemed to cause some interest, so my priorities have been shifted a little to incorporate networking and multiplayer features in an earlier version of the game.

  • 2007/08/20: (CL681) Added more special mouse pointers. Houses and roads level up after some time and then start again at lowest level, to show some of the other graphics. Some additional range checks to prevent crashes when pointing to a location out of the map. Scrolling is a little more restricted now, so it will happen that you can't see the very edges of the map.

  • 2007/08/15: (CL669) The Delete-Button works now. The objects that will be deleted are highlighted in red. Implemented custom mouse pointers and included graphics provided by Kleinmanny.

  • 2007/08/07: (CL657) Roadbuilding first version is there. Two types of roads, that will have different behavior and costs, to be implemented in a later stage. Prepared graph implementation. Road building works with dragging, the pathfinder is very simple but good enough for now. Will later be replaced by proper pathfinding and optimization.

  • 2007/07/31: (CL638) Started some restructuring to prepare the next steps, and changed behaviour such that ESC leaves the main menu, in addition to pressing 'q'. There seem to be problems with the OpenGL implementation which causes problems on some PCs. So I have to give this some higher priority along the road map.

  • 2007/07/24: (CL629) Changed version numbering, so this is 0.2.2 which contains build menüs, so you can build houses. Building is not completely implemented, so don't complain about invalid placements of houses. This version is mainly aimed to show images in the game, you may look into the starting script to see how house types and menu entries are defined, and it should be easy to modify these scripts to show different images if desired.

  • 2007/07/22: (CL628) I can build houses now! There are some technical issues to solve, but after that it will be time for another download to show all progress made so far.

  • 2007/07/15: (CL619) On the path to completing the dynamic building menus. This includes scripting, implementing some basic data structures to represent houses in the game, and all the user interaction, so this task is about to touch most other modules in the project so far. That's why it takes some time to complete (but I have to admit that the fine weather doesn't help either). Doing this right will help a lot for further implementations of that type!

  • 2007/06/23: (CL603) Switched from using return codes to exceptions, even in code parts that are called from a script. While this does not make much notable difference, it can produce much better error messages if something goes wrong during script interpretation: Detecting errors in a script should be much easier this way.

  • 2007/06/17: (CL599) Implemented ingame message console that displays informative and error messages during script loading and similar. The text (which is also written to the logfile allegro.log) is shown as overlay over anything else that is displayed, including menu screens and even the game map screen.

  • 2007/06/10: (CL596) Vacation is over, and I didn't do much programming, but thinking about game concepts instead. The changes to the current sources are preparations for the dynamic menu which will be needed to implement all the building options. Lua is now on version 5.1.2, and a number of additional settings are configurable from the ini-File.

  • 2007/05/01: (CL577) Map can be scrolled with the right mouse button. While this does not seem to be spectacular, it means that all preparations are done to be able to interact with the map. All coordinate computations between screen and map coordinates are in place and pixel precise. The current center tile and the current mouse hovered tiles are outlined. The proposed map size of 30x30 tiles is minimal, I have tested until 2000x2000 tiles, which is pretty large.

  • 2007/04/15: (CL574) First display of a map, smooth scrolling using keys, tiles are loaded from scripts so tiles can be easily added and changed. Also changed tile height to 31 instead of 32, which saves one line of transparent pixels. Included a first version of xenarellas tiles.

  • 2007/04/09: (CL564) Tiles can be loaded from single files as well as from larger graphics as parts. Error handling settled between script and main program, but the messages have to be read from allegro.log with an external editor or viewer.

  • 2007/03/11: (CL557) Added scripting to load simple bitmaps into the game. Error handling is an issue here, because the game should not simply crash or terminate with an exception if there's a syntax or runtime error within a script.

  • 2007/02/25: (CL 554) Added true type font support to guichan for use with OpenLayer and Allegro with GlyphKeeper. This proved to be some hassle, not because it's so much or difficult coding, but to have these changes and enhancements be accepted by the corresponding developers. Well, now that's almost finished, so I can at last go back to the main subjects.

  • 2007/02/18: (CL 525) First milestone reached. This version shows the main menus and provides some moving figures to estimate frame rates with different settings on different machines. Entered this version into local source code control as changelist 525.

  • 2007/01/24: The framework is improving. By now, there's a menu, and instead of a game there are balls jumping around. The missing features until I can upload something here are the display of the actual framerate, and an adjustable speed for the simulation.

  • 2007/01/15: There's not too much to report yet. I have started active development just recently, after evaluating a number of different libraries and possible approaches. Including the decision about going 3D or staying 2D.
    The outcome is: I will do this game in 2D with isometric tiles, mostly because the old games are done that way, but I also believe that it is simpler this way. I haven't seen a decent game made by a very small team or a single person in 3D. Of course I want to use as much hardware acceleration as possible, so I will use OpenGL, through the abstraction OpenLayer provides. Currently I'm setting up the framework which will host the game later.



The Next Train

The Next Train

This game is a clone (not exact though) of the old DOS game A-Train by ArtDink, published in germany by Maxis in 1992.

This game is using the open source library Allegro. With this little project wanted to learn how to do game programming, and maybe recreate a little interest in that old favorite of mine.

Download the version 1.0.1 here. As of now, the game is not really complete, but should be already playable.

During development I started a small library with a game framework, that can also serve as a start for another game using allegro: GWFK - current version is 0.6.

I will not continue this game, for several reasons. First and most important, I have learned what I wanted to learn, and now I know how to do better. Extending this game would require a lot of technical work, and I decided to spend my time for Villages and Cities instead.

Finally I have decided to upload the sources to build this game. See

Dieses Spiel ist eine Nachahmung des alten DOS-Spiels A-Train von ArtDink, von Maxis in Deutschland im Jahre 1992 veröffentlicht .

Dieses Spiel wird entwickelt unter Benutzung der Open-Source Bibliothek Allegro. Mit diesem kleinen Projekt wollte ich mehr über Spieleprogrammierung lernen.

Die Version 1.0.1 findet sich hier. Das Spiel ist zwar nicht vollständig, sollte aber dennoch spielbar sein.

Im Rahmen der Entwicklung entstand eine kleine Bibliothek, die als Rahmen für andere Entwicklungen mit allegro dienen kann: GWFK - die aktuelleVersion ist die 0.6.

Ich werde dieses Spiel nicht weiter entwickeln, aus mehreren Gründen. Zunächst einmal habe ich gelernt, was ich lernen wollte, jetzt weiss ich, wie man bestimmte Dinge besser macht. An diesem Spiel weiterzubauen würde eine Menge technischer Arbeiten nach sich ziehen, stattdessen möchte ich mich lieber auf Villages and Cities konzentrieren.

Inwzischen habe ich mich entschieden, die Quellen für dieses Spiel freizugeben, siehe


About me

In case you need to contact me, just send a mail or send me a PN on facebook.

I'm also a member at where you can find more information in the members area

Disclaimer (german)

Ich habe auf meiner Seite Links zu anderen Seiten im Internet gelegt. Für all diese Links gilt: Ich möchte ausdrücklich betonen, dass ich keinerlei Einfluss auf die Gestaltung und die Inhalte der gelinkten Seiten habe. Deshalb distanziere ich mich hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf Und ich mache mir deren Inhalte nicht zu Eigen. Diese Erklärung gilt für alle auf meiner Seite ausgebrachten Links und für alle Inhalte der Seiten, zu denen die Banner führen.

Disclaimer (english)

All logos and trademarks in this site are property of their respective owner.