Posts Tagged ‘Windows’
I didn’t record a timelapse video but I wrote this post talking about the development of my Ludum Dare game The Monastery. This will be a rather lengthy story of the development process so find a comfortable position and have a cup of tea or coffee. I want to get this out of my system now that the horrors are still vividly in my brain!
The Monastery is a type of game I’ve wanted to make for some time. I happen to like old school games and one game in particular that I have fond childhood memories of is SSI’s Pool of Radiance from 1988. For those too young to remember, Pool of Radiance (or just POR to friends) is a fantasy roleplaying game that features tactical combat and resource management and was one of the first games to fully implement the complex Advanced Dungeons & Dragons rule system. I really liked the game then and even today the battle system and the setting is very good. Naturally POR inspired me to revisit the genre and make The Monastery.
From the get go the project was not smooth sailing. On Friday, a day before the compo, I woke up with fever. I had already cleared my calendar for the weekend and had been very pumped up for the compo the entire week so I cursed my bad luck. I had to stay the day in bed and decided to check how I felt on Saturday. Luckily I woke up on Saturday and the fever was gone. Phew! I checked the theme, which was Beneath the Surface. Well, at least it’s not Breaking the Rules or whatever. I began thinking about ideas, mainly background stories, that would fit the theme while eating breakfast and taking a shower. Initial ideas that popped in my head felt too easy: being underground or underwater. I decided to have a walk around the neighborhood while pondering more on the theme. Then suddenly I had a vision of a large frozen pond. Even though it was sunny and warm outside I dreamed of travelling in a frozen landscape passing by a large building… perhaps a wizard academy? No, too Harry Potterish. Let’s make it a monastery!
I got back home and started googling and I found the book Haunted Monastery by Robert van Gulik. It was some kind of eastern horror detective story which gave me some ideas. I started to think how to make the monastery an interesting place for a group of adventurers. The monastery should be an eerie place, maybe abandoned but not empty. There was a mystery that needed to be solved. And I needed monsters to fight… Undead Monks? Then I started thinking what bad things had happened in the monastery and how the monks had been transformed into horrible undeads. And what about the abbot? Why is he missing? Where is he?
I spent about 3 hours working on the setting and background story. It was already afternoon when I turned on my computer and was ready to start drawing the graphics. I hadn’t drawn any real graphics for a loong time so it took me a while to get accustomed to the software and the process. I used Aseprite, a tool which I had never used before, but to my delight it turned out to be a great tool for pixel graphics. I started by drawing the font and then proceeded to make the player sprites. I needed sprites for the player charcters, the Fighter, Cleric, Wizard and… I pondered on the fourth guy for a minute — of course, there had to be a fourth guy — before settling on the Ninja, which I thought was pretty funny. Then I realized that I wanted to have character creation in the game like in all proper RPGs so I made four variations for each character and separate standing sprite and attack sprite. That’s 32 tiles in total, but luckily the variations are only different coloring. (Those who have played the game may have noticed that character creation was a victim at the cutting table and the color variations are not used by the game.)
After the characters were done, I did the enemy sprites for about 10 different enemies. When they were done it was already about 6pm and I had a dinner break. I realized I didn’t have a single line of code written yet so I decided that I had to have at least something on the screen before I called it a day. So I started coding a turn-based battle system. I like the Lua programming language a lot and it was a no-brainer to use it for the project. I had made SDL bindings for Lua a couple of a days ago as preparation work for the compo. Starting from scratch when coding can be painful and no surprises there, I had some problems with Lua error messages and stacktraces not being shown properly. I had no time to tackle the issue properly so I carried on. In hindsight this probably was a mistake because I was suffering from some quirks with the codebase the entire weekend.
At the end of day 1, I had the basics of moving on the battlefield and attacking done, but all the fancy things like spells and stats were missing. But hey I could now move on the battlefield and kill monsters! And the monster could do some simple pathfinding my way too.
I woke up on Sunday feeling very worried. I had only 19 hours left and I didn’t have anything ready that resembled the game I had in my head yet. The remaining todo list was daunting: character creation, exploration mode, spell system, healing, items, winning condition, monster statistics, character statistics, dungeon props, intro, main menu, level design, scripted encounters, sounds, music, playtesting, packaging the game for release… I decided to somehow try not to think about it and just start working. But I felt that the mother of all crunches was ahead of me.
I decided to work first on the most crucial parts: exploration mode and encounters. Without them the game would not feel at all like those good RPGs of old. I first considered whether I should make a random level generator but I thought that tuning it would be slower than just drawing a few levels by hand. So I grabbed a sheet of graph paper and started doodling and writing down names and purposes of rooms: entrance hall, storage, dining room, kitchen, lavatory… Upstairs: bedrooms, library… a ritual room! I tried to imagine myself walking in the monastery and thinking what I would need if I was living there. Then I started writing room descriptions and notes that the monks had left behind. I thought about the frozen pond and what has buried beneath its surface. The notes would be crucial in telling the story that I had in mind.
I quickly wrote a system for describing the levels and rooms in Lua. I made a simple encounter system, which was essentially as simple as an anonymous function called per room. The function would be called when the player entered the room. The function would print room description to the screen but could also execute any Lua code for triggering battles, placing items on the map and so on. Later the system would be extended to handle searching the rooms.
When I had the levels and rooms done the clock was already 3pm. Then real desperation struck me. Only 12 hours left and the game had huge gaping holes, important pieces missing everywhere. I really thought more than twice about quitting. I felt that it was impossible to do what I wanted in the remaining time. Besides I needed at least an hour, preferably three to playtest and polish the game at the end. That meant less than 10 hours to implement all the features. Quitting was tempting… But failure was not an option! I had already publicly announced that I would do this game. Damnit! I bit my lip and started furiously coding, banging the keyboard like a madman (my spouse was getting really worried at this point).
I only stopped a few times, a minute or two at a time to catch fresh air or eat a sandwitch quickly. During the coding marathon I consumed several litres of juice and soft drinks. Feature by feature I went through the list, working always on what seemed the highest priority thing. The order was roughly: winning the game, character stats, monster stats, key items, dungeon props (doors, stairs, etc.) and spells. 9 hours later, at midnight local time and four hours before the deadline I finally had a working game. There was still work to do but I was now feeling confident that I could do this. The main menu, sounds and music were created only about two hours before the deadline. I used the excellent BXFR for the sounds and cgMusic for generating the theme music.
Less than two hours left, it was time to start testing and polishing. I was very exhausted from coding and luckily I got some testing help from my brother Erik, who kindly stayed awake late and tirelessly played the game even though he had to go to his studies the next day. Thank you Erik, without your help The Monastery would be much less balanced.
I kept on tweaked the game till the last minute. The last feature, casting healing spells outside of combat, also requested by Erik, was added just about 15 minutes before the deadline! I was nervous about making changes so late and so tired. I quickly packaged the game and submitted it only a couple of minutes before the deadline. I did not have time to play through the game fully before submission. I had only tested the encounters in isolation and made balancing tweaks “blindly” by following Erik’s advice such as “take 1-2 skeletons from this encounter”, “reduce hp of spiders by a few points”, etc.
Now that the game was submitted I finally had time to play it myself. My head hurt from all the coding, I had been coding 19 hours nonstop. My neck was about to cramp and even the muscles in my face were hurting. But it did not stop me from enjoying the game — I think this was the first time playing my own game just after release and it did not feel exhausting. I played through the first floor and the game felt pretty good. Completed the second floor as well. Then the ultimate end fight — hard as a coffin nail just as it should be! I just barely survived it with two of my guys dead and the remaining two barely alive with 2 or 3 hp and no spells left. It had taken me about half an hour to play through the game. I was happy, I was relieved. I was dead tired! Satisfied I went to bed.
End of story. Or is it? After working so hard on The Monastery, I would really, really like to hear what you think about it. I certainly hope you enjoy it, especially if you like tactical RPGs but I can also take brutal honest feedback. I know there are things that could be improved — the UI could use some streamlining. In fact I’m considering making an updated version. Even if you do not like the game, then I hope it at least stands out from the crowd like a relic from a strange forgotten age!
Petri signing off.
Well, I’ve managed to get the basic controls working. Now I just need to actually make the game mechanics and it’ll be done.
The controls as they stand right now are;
Arrow keys, Enter, Escape (Intro screen is skippable with Escape)
Rebindable – Both Keyboard and Joystick (Uses button/stick layout of the 360 controller when telling you what an input is bound to)
Digging in the game is done by holding the dig key and pointing in a direction with the movement keys, right now you can’t move and dig at the same time.
Since I was in the Cyberpunk Jam I wanted to make another game for the MiniLD and the Insanity Jam, but I guess the motivation wasn’t there, so I didn’t participate in both. This time, I’m thinking a different game genre and platformer as my plan-B. A few of my friends are going to try tho make a game from scratch as I heard from them, but I currently lick the knowledge to do so, so I’ll be sticking to my favorite engine – Multimedia Fusion 2.
For music, I’ll be making it myself. I’m not a real musician in any way, but I can still make a tune that you will probably enjoy. If you want a sample of my work, I have a upcoming album with a few pre-release tunes already published here.
For inspiration, I use C418 and KOZILEK.
For software, I’ll be using FL Studio 11 Producer Edition and Audacity for some extra sounds or dialogue.
Also, SFXR – for sounds.
For the artwork, I’ll e sticking to my minimalist style of pixel art. It helps with time and it still looks fairly good. I’ll also try to animate a bit more. Software – Paint.NET, Photoshop CS6.
PyxelEdit - for tiles
Livestream on Hitbox
Thanks for reading and have a nice jam time!
Well, now that I’m back on the internet again after my short vacation and gradma visit I’ll be making my entry statement to the compo.
Hopefully I’ll have time once I get home (on a train at the moment) to start working on a base framework, so I don’t have to spend the first hours doing that.
My tools however will be the same as they’ve been for all my other LD entries;
- CMake (Visual Studio on Windows, Clang/GCC on Linux)
- C++11 (Code for the Code god)
- SFML (Graphics for the Graphics throne)
- Gimp (Glorified stick figure drawing)
- Blender (In case third dimensional needs arise)
The code will, as always, be on my GitHub. And I’ll be streaming the entire process on my Twitch account.
I’m going to make an effort to try and answer any viewer questions that might arise, since I haven’t been very good at that the last few times.
I guess all that’s left to say is; Good luck to all the rest of you nice people, and let’s aim for a nice theme.
“Ermahgerd! 188th for Humor in #LD28.”
Thank you to everyone who took the time to try my game. I am humbled and glad to have taken part in LD #28.
Only scored low on innovation; which let’s be honest, is no surprise. My main goals were to complete a game and learn from the stats and feedback given, which you have given and I have done and will continue to do. Thank you, truly.
Again, thank you; thank you thank you thank you.
Although it was not completed in time for the Jam, we would like to share the game we started for Ludum Dare 28.
More details at the link above.
I’ve finally done it! I’ve made a game in less than 48 hours! It’s done!
The entry post page, http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=29029 , is up and running and has the Windows and Mac OS X version working! The Mac version is not a .app but just a unix executable but it works nonetheless.
If you want to see a video of the game play as well, just look below:
I hope you enjoy this little game, and merry christmas from Ginger Bill (Ginger Games).
- Programming Language – C++
- Graphics Library – SFML 2.1
- Audio Library – SFML 2.1
- Image Editor/Creator – Photoshop CS5
- Music Editor/Creator – Garageband
Well, this has been great, and I’m finally done!
I’d be lying if I said this hadden’t been a lot of fun, but I think I could of done much, much better — I just got a late start.
My final verdict of my own product is as so: It could of been MUCH, MUCH more…
You can take a look for yourselves, here:
And you can listen to the music here, if you’re interested in that:
I’ve now made the game more polished and I’ve added pretty textures and “animations” such as snow fall and santa flying!
The following video shows what I’ve done so far:
To do list now:
- Create Christmasy Music
- Add said music to gain
- Refine controls
- Refine falling “logic”
- Compile and bundle for Windows/Mac/Linux
- Add Awesome Sauce
- Remove Rubbish
- Programming Language – C++
- Graphics Library – SFML 2.1
- Audio Library – SFML 2.1
- Image Editor/Creator – Photoshop CS5
- Music Editor/Creator – Garageband and Logic Pro 9
This is the first Ludum Dare I’ve done so I thought I’d keep it simple. The ‘plot’ goes something like this:
This year, you have been very naughty and Santa was only going to give you a piece of coal and an orange (and not even a good orange!). However, he accidentally dropped one and you are now trying to protect it as Santa throws rocks, pieces of coal, and oranges down at it to destroy it.
The following video is the first time I thought it was a game and not just a thing.
It’s better now but only in gameplay and not graphics.
This game was made using the following:
- C++ (Programming Language)
- SFML (Graphics/Window/Audio Library)
- Sublime Text 3 (Text Editor that is AMAZING!)
It works on Mac and Windows (and probably Linux too but have not built it yet) so everyone should be able to play it!
That’s right; love her or hate her, you only get one mom. She cleans up your mess, and for what? Twenty years later you’re off with another woman! Mom’s of the world, we salute you.
I did not set my ambitions high; this is my first game jam and I wanted to make something I knew I’d get done. I’m not going to win an award but at least I can say I did it and gain insight from others.
#YOGO Mom! is a simple game where you are set against the clock to clean up the mess left behind after a LD48 event by your indie dev husband or child. I’m about 60% complete, with graphics and menus the main obstacle to tackle between now and the end of ludum time as we know it.
… and it complies with the #NOKILL side quest.
It has been really great following everyone’s progress via twitter, you are all amazing, don’t stop now!
This time I’ll make a really simple game due to the tools I’m using.
Libraries: SDL, GLM, GLEW, FreeImage, OpenGL
IDE: Visual Studios 2012
The base code I’m starting of with can be downloaded here: