Remember that game about walking on water? No? Well.. okay..
It just so happens I made a flashy itch.io site for the post-compo version of the game(We’re talking Under Ytan here for anyone not keeping up, you know, that I made for LD29), and I just kind of wanted to tell you guys it exists. Ludum Dare is pretty much the reason I still make games, it made me actually finish something, over and over again! Awesome feeling! So as kind of a loveletter to Ludum I want to tell you that you can find both Under Ytan and a game I made earlier this year(Outside of LD, believe it or not) on my itch.io page!
The game is call “hets” and is of the 2D platformer, hectic, randomized, powerup collecting, monster shooting kind. It also is in pretty edgy gritty pixel style, a style I’m kinda pleased with if I can say so myself!
I like games where things are fast. Very fast. I also like games that are sort of unforgiving, and doesn’t hold your hand really, but still lets you practice until you are good enough to beat the crap out of it! I think I managed to make hets one of those games.
Why not give it a try, both hets and Under Ytan are free to download and play! (But I mean, if you’re thinking to yourself “Hey, that Ditto guy is probably starving and struggling to pay rent… Maybe he’d like a dollar!” you caaaan kind of give me a dollar for the effort… if you want to!)
Hello! I have just joined Ludum Dare and I am a proficient programmer in python and pygame, although I know a very small amount in C and C++. I would like to work with someone on a jam sometime. I am always open to suggestions, and I will most likely make development updates and postmortems for most of my games.
So the Mini Ludum Dare #53 was my first ever LD, and all I can say is that it was fantastic! Great people, game development, and an excuse to geek out and rapidly destroy my health over the period of 48 hours. I entered the jam as a solo participant (because I don’t have any game developer friends in real life) and spent the weekend in the solitude of my study. It was an experience that definitely opened my eyes to quite a few things.
A Cruel World was my attempt to express my artistic side a bit. I don’t have time to do art anymore, and even though I’m terrible at digital art (I’m more comfortable with a good ol’ pencil and paper) it was a great learning experience for me. Although the atmosphere may have been a little wishy-washy, it was meant to be a depressing exploration game covering the topics of corruption and greed, self-image issues, deforestation, animal cruelty, and over-reliance on religion. This was my take on ‘The Future Is Now’ theme – because these are problems that we face today, that will only worsen as time goes by.
The atmosphere I aimed for was heavy, with anthropomorphic character designs that matched each NPCs character (such as the wolf being the greedy salesman, and the sheep being the religious figure). I would have loved to have had more time to build a more complete world and to iron out many of the bugs, but alas it didn’t work out this way.
The first level of the game, where a poor man tells the player about the world.
The Development Process
With only 48 hours to complete the game, I used my own libGDX-based framework (with already implemented input, render, debugging, and audio controller classes). From here, it was a simple matter of creating the world-space, drawing the art, coding the logic, and slapping in some audio for good measure. I started with a notebook and pencil for all my designs (all concepts, artwork, algorithms, and level layouts) and subsequently implemented my designs as I went.
Although I have developed a few small games, I have explored quite a lot of new territory this time around. For instance, I have never written a free-roaming game with separate levels, so this was an interesting endeavor to implement dedicated classes, each with their own self-contained logic, for each world-space. An inventory system (although extremely basic) was another thing that I had never touched on.
The fact that I had an extremely tight schedule and clear deadline definitely helped me set aside my uncertainty and simply slap together code to make it all work. I tend to be overly pedantic when it comes to programming, always considering optimal memory/CPU usage, neatness, code commenting, and so on. There is no time for this in LD however, and this really helped me overcome my care and simply MAKE THINGS WORK (albeit only adopting this strategy nearly half-way through the compo).
Exerts from my MLD#53 design book.
What I Took Away
All in all, I was quite happy with the result. It may be slightly buggy, and perhaps I could have been clearer about where to go and what to do, but then again it is an exploration game. I would have changed a few things if I could however, but as I said I had run out of time.
First things first, I realize now that programming is my absolute favorite part of the game development process. The labyrinth of flowing code is an intoxicating mind-game to me – a way to lose myself in complicated algorithms and hierarchical visibility. I loved the art side of things as well, but I found it became somewhat tedious (and anyone who has played my game may see how the quality of art declines the further you get.) This may have been the problem of hand-drawn art taking so damn long to make, and this coupled with the deadline put me off. Who knows?
Secondly, I learned that an exploration game is not the best approach to compo with such a short deadline. It has almost zero replay-ability, the slightest bugs come out glaring like a car’s headlights in the dead of night and utterly ruin the experience, and you simply do not have enough time to create an expansive and interesting world that will offer a lengthily play-through.
On the game front, I definitely would have approached some problems differently. I relied too heavily on boolean control variables for inter-class communication, which could have been replaced by a much more, much simpler system if I simply based actions on player position, instead of an activation button while the player stands at a specific position. It’s a minor thing, but this simply change would have saved me an hour or two of debugging which could have been used far more productively. Good knowledge for next time then.
All in all however (as I said), I am pleased with what I accomplished. The purpose of these jams is to extend your knowledge and experience, and this is exactly what I managed to do. I explored new territory with A Cruel World, and enjoyed every sleep-deprived second of it. I’ll definitely be more confident, prepared, and efficient at the next Ludum Dare. I will also take what I have learnt in the mere 48 hours of development and funnel it into my current Android game - a project I hope to complete soon and release on the Play Store.
To end off this post, I have uploaded the time-lapse video of the development process for anyone who likes to stare at low-framerate, illegible windows:
Just another note: I haven’t had the chance to play through any other games as of yet. I’ve been out of town, and operating only by smartphone for the last couple of days. Last night I returned, and I’m off again tomorrow morning. Perhaps next week I will have a gap in order to melt my mind with some of your guy’s lovely creativity. Until then, have good one!
The response to 1.0 was great, I really appreciate it! Now, we have Yamanu 1.1! This one mainly added some profiling and utilities. My favorite of which would be the processor information. You can get the processor vendor, and speed very easily with Yamanu!
Thanks guys! There will be a video out soon explaining the basic app, and how YGEApplication works! Sorry the website’s down. It’s a free website. If I get enough support, I might pay for hosting and a domain, so you guys can have a place to go for all of this instead of me putting it in a post on Ludum Dare. Anyways, have fun!
EDIT: Nothing has been tested on Mac yet, so if anyone that has a Mac wants to play around with Yamanu, go ahead! Email me here to tell me if there’s anything wrong.
Many submissions in the Mini LD #53 have links labeled as web, that are not web at all. This is quite annoying, as I like to know upfront if I’m going to have to actually download something, extract it, blah blah blah. There is a proper way of labeling your links, as I describe below. Doing this properly will help keep people in the community from being annoyed by a “web” game that prompts to download an exe file.
Web – Can be played in the browser. For instance, you build your game in flash, html5 or unity webplayer, and the game is hosted on kongregate, newgrounds, your own site, google drive, etc. (I’m trying to be all inclusive, not stating any one of these is better than the other). These games will be played directly in the browser, without you downloading anything that you must do outside of the browser.
Download – This cannot be played in your browser. A file must be downloaded, extracted, dependencies possibly installed, etc. The game is run outside of the browser and is a bit of a headache. With a lot of games, this takes more time than playing in the web, as the file must be extracted and so on. Examples below.
Windows – This is anything that is an exe, or a zip or other archive that contains an exe meant to run only on Windows. If this describes your game, please don’t label it as a “Web” link. You can label it as “Windows” or something similar.
Mac/OSX – This is a game built for Mac/OSX that is played only on Mac/OSX. This is not played in the browser. If this describes your game, please don’t label it as a “Web” link. You can label it as “Mac” or something similar.
Jar – This is an executable jar file. This can run on any platform, as java is that versatile. Jar files can be run in the browser, but it’s still necessary to build the web page to do so. If you link ends with .jar, this is not a web build, so please don’t label it as a “Web” link. You can label it as “Java” or something similar.
I’m not trying to yell at anyone here, but some people haven’t learned the difference. It may seem trivial to some, but it is only common courtesy to let people know up front what to expect. If I click on your web link (because your game seemed so exciting I forgot to look to see where the link actually went before I clicked) and it didn’t take me to a page on the internet that allows me to play it in my browser without downloading anything manually (and extracting, and so on), I will not play your game. It’s nothing personal, it’s just that if you can’t tell the difference, your game is likely to suck and be a waste of my time extracting it, installing dependencies, running in compatibility mode, turning my monitor on it’s side, setting up a house of cards, painting a masterpiece, etc. just to get it to work.
HOWEVER, if you let me know up front by labeling your links correctly that all of that stuff is involved, if your game seems worth it based on the good and complete description that you wrote, I WILL do it.
Edit: If you weren’t planning to build your game for web, please consider doing so. Not everyone in the community is computer savvy enough to download a game and install dependencies, people like artists, people like my artist / wife. If it’s not a web game, my wife won’t play it unless it has a very compelling description that’s very appealing to her, in which case she bugs me until I cave in and download it and make sure it will run for her. Also, it’s possible to unintentionally include malicious code in a downloadable game, where security settings in most of the web players won’t allow such a thing. I’m sure it’s not hard to write your game in .NET and make a mistake (Because you haven’t slept in 30+ hours) that deletes the a user’s “some other folder” instead of just the save file your game makes like you intended. Not saying that this awesome community would do it, but someone could do something like that on purpose, especially someone that’s not part of the community and is just looking for some way to get their kicks. I’m sure most of us are playing these games on the same computer we develop on, the computer that is our livelihood, and just don’t want to take that risk.
Edit 2: Please read the note from artist/wife for a better written explanation, as she is much better with words than I am.