Glass Heart Empire (Post-Mortem)

Hey Darers!

I made a game called Glass Heart Empire. It’s a roguelike where you leave corpses after dying, which are lootable by other players in their worlds.

Glass Heart Empire

The Brainstorming

Normally I don’t try to think about the themes during the theme voting that much, because I think getting and elaborating on an idea should be like bugfixing part of the 48 hour time frame. But then, voting on a theme without thinking about its approachability is somehow hard.

It was pretty clear that Connected Worlds will win (given the votes) and together with that nice, new board game I played days ago (called Robinson Crusoe), I somehow wanted to do something with exploring and surviving in the wilderness.

As Ludum Dare starts here in Germany at 03:00 AM, I went to sleep after looking up the theme. I played with the wilderness survival idea but it was somehow difficult to pin it down to something manageable in 48 hours. Finally, a new and better idea came during sleep. As a Dark Souls fan I always loved the idea of connected player worlds. If you are not familiar with Dark Souls: players fight solo through their game world, but messages written on the floor appear from other players’ worlds, players can invade the world, you see ghosts and puddles of blood from other players and so on.

In the end, I settled with such a shared world idea, because I’m confident with basic “internet things”. I set the genre to roguelike, because in contrast to a common action RPG, roguelikes may be easier to implement in terms of proper collision detection, movement and especially animation.

separator.png

What Went Wrong

  • Scope: I reduced the scope as much as possible, but I wasn’t able to finish the game: I had not enough time to test/balance it as well as making any sounds or music. Why? I had to program the roguelike basics and, yeah, it took more time as expected (surprise surprise!).
  • Game Design: While I’m really happy how the game plays, I wished a had done a more reduced approach where I can polish and test more. Why? I think that’s just the never ending battle of ambition and experience.
  • Sleep: I slept not that much and I think this resulted in some efficiency issues. Why? I just can’t sleep if I have stuff to do! With a deadline! A 48 hour deadline!
separator.png

What Went Right

  • Fun: While it was a lot of stress, I really enjoyed the making of.
  • Online-Feature: I got the online feature as fast as I hoped, without any time-consuming bugs or problems.
  • Graphics: I settled with a style fast and just worked through the different tiles and monsters. Some time ago, I always had to fight until I got a visual style to work with.
separator.png

Technical Details

If someone is interested in how I made the corpse-saving and -loading: it’s quite simple if you are familiar with PHP. I know, it’s the dumbest solution, but it just works. Not recommended for “proper” games!

There is a getter-PHP-script which reads the corpse data (player’s name, x-coordinate on map, y-coordinate on map, amount of lootable experience) and echoes them as plain text, with “;” as a separator within a corpse-data-entry and “|” between corpses. Example: “Unknown;5;12;3|OtherCorpse;2;12;5|…”.

A setter-PHP-script takes data with a similar format and adds it to the database (don’t forget security in terms of SQL-injection etc.).

Within the game’s code (I work in C# with XNA), I have a getter and setter class which mirror the functionality of the PHP-script on my webspace. If a player dies, the game registers a record in the setter-class. At the start of a game, the getter-class downloads the corpse data with a http-request.

If you want more details, you can checkout the source code.

separator.png

If you want to add some corpses to the 3419 corpses stored in my database, your are welcome!

Play Glass Heart Empire
(Windows only)

Source: ludumdare.com archive

Found a bug?
Tell us on Discord