Gopher

LD16

Half an entry

Didn’t get to work on this as much as I intended this weekend, but I like the concept so I”ll probably try to finish it later.  I’m fairly pleased with the progress but I’m embarrassed at how terrible the code got, and shocked at how quickly it got there. First thing when I resume, I think getting the bugs out of the cable code is going to require completely rewriting portions of it to be rational.

unfinished game
:edit: forgot to link the zip earlier. Click pic for download; includes the statically-linked win .exe, but the main.lua file should(?) run with any working retro setup. :edit2: smaller zip, omits RetroEngine.exe

Poached the concept from the #17 suggested themes… hopefully the theme won’t win, or I’ll end up feeling silly next month. Going to be a puzzle game where the player is working their way through a derelict ship trying to get it’s systems back online using only their collection of trusty Omnicables to transfer power, air, and fuel between systems.

Comments

23. Mar 2010 · 11:50 UTC
This looks like a pretty fun concept. If the theme doesn’t win for LD17, maybe you should finish up the game and do something with it.
Gopher
23. Mar 2010 · 12:46 UTC
thanks thedaian, I’m planning to finish it up regardless, at this point I’m mostly debating whether to fix this incomplete compo entry or just start from scratch without retro. The code is really just horrifyingly terrible and needs to be rewritten, and the retro engine was great for a compo but if I’m planning on distributing it outside the contest it won’t register as a plus to most players, so I’m leaning towards leaving this version as-is and restarting the idea in python. I’m tempted to go on about the planned features, but I find the more I do talk about them, the less likely I am to implement them, so I’ll just say I should have another version (whether in lua/retro or not) later this month, which will actually be playable and won’t have the string bugs this version has. The LD48 entry might not have been finished, but as a proof-of-concept prototype of the design I’d call it a success :)

LD19

Late Start for miniLD

:edit: more update. Not much changed, last piece integrated and a nice animated pixel font running, also improved clouds and cloud shadows.

current in-progress

Over the last week I’ve done some research and setup on some new tools and APIs I haven’t used before, but I’m just now actually starting work on my project. I’m focusing mainly on just two things from the theme options: code complete in 3 hours, and using tools I haven’t used before. I picked the first because I contradicts my nature; I’m a programmer first and foremost, and my natural reflex is to hack together the quickest crappy graphics I can and spend most of the 48h on code. I think it will do me some good to focus most of my energy on the content for a project, even if it’s a 48h one. New tools/languages works well with this plan in two ways: first, a focus on content give both time and incentive to learning and applying new content tools; and second, the need to complete the code quickly will encourage me for using APIs that I have not used before. I thought about making it 1- or 2-button as well, but the necessary changes would make the game a lot slower and less fun. What kind of game I make will depend in part on how far I can get in 3 hours of coding, all I know for sure is that it will have a 2d overhead tile map.

I was going to use GLUT, but at the last minute I realized I haven’t even installed GLUT on this computer; downloaded the latest build and set up the inc/lib directories but the linker called the binaries invalid, and after a few downloading again and spending a minutes fiddling I decided to just move on. Instead I’m just using my own base application code; technically this is pre-existing, non-public code, but it doesn’t do anything GLUT can’t do, and in fact GLUT can do much more, so as my own official neutral judge, I’m going to allow it. For sound, I’ll be using fmod. As the design takes shape I may use some other minor APIs as well.

Content-wise, I’ll be making my graphics in gimp, and all my sounds will at least start life as recordings of my own voice. There will be additional content, including at least tile maps, which I will will make in Mappy. Text files will define some additional game-specific content, such as monsters, equipment, and pick-ups; how flexible these formats will be will limit what kind of game I can make, and if time allows I’ll also have some crude (and literal) scripting language, for scripting cut scenes. The latter feels like cheating the 3-hour rule, but it will not be a complete programming language, just a primitive language for creating conversations and cut-scenes.

No time like the present to get started!

Comments

Gopher
13. Feb 2011 · 05:32 UTC
I rather like the pixely cloud layer, the shadows need softening up tho. Spent half my time so far on content, the other half on pulling together bits and pieces of my various projects this year and tying them together into one project. This proved trickier than I anticipated. There was some new code added – I integrated fmod into an existing asset manager, added a simple filter for that makes a perlin texture into clouds, and extended on my sprites and tilesets to make animated sprites. Most of this work so far has been catching up on basic integration I’d been putting off for too long.
moop
13. Feb 2011 · 12:13 UTC
That map is looking pretty sweet so far, though I agree that the shadows could do with being softened a bit. Best of luck with the game!

Time Flies When Your Body Mutinies

Well, I decide I should take a nap in the later afternoon, set an alarm for 5 hours, apparently my body didn’t care much for the idea of getting only 4 hrs sleep being up for 36 straight, and it had other ideas. I didn’t start until nearly 7pm Saturday, and it’s not even midnight Sunday yet, so plenty of time left. My progress so far feels pretty feeble, and I had a hard time getting and staying focused and on-task.

Screenshot, though it’s not much different than my last post:

more rough terrain tiles.

I certainly didn’t make any progress while sleeping for the last nine hours, and I don’t feel like I made as much progress as I could in the first 20 hours either, so I’ve got catching up to do. At this point, strong odds I will either be feature-poor or content-poor. My time so far has been divided pretty evenly between code, content, and sleep. As I’ve mentioned in my previous post, almost all of my programming so far has been integrating bits of code from different projects I’ve worked on this year; I’ve been re-learning OpenGL, as I hadn’t worked with it in years. Most of the code may not be less than 48h old, but all of it is less than 48 days old, and I pulled out bits from across half a dozen projects. I’ve now got basic management of assets, game objects, game entities, and audio, as well as rendering tilemaps, cloud layers, and animated sprites, and in the tool-box are generic implementations of FSMs, perlin noise, and A*. Everything so far can be referenced by a name string, for the sake of one of the biggest final pieces – the cueing language. With that groundwork laid, and some systems already responding to cue events, the cueing language itself should not take too terribly long. Unfortunately it’s the biggest but not only piece left, also need to implement monsters, equipment, entity controllers, saving and loading of game state and loading from descriptor tables of monsters, items, equipment, and map definitions.

So, uhm, yeah. Lots to do. And vanishingly small time left over for content… might be wise to ditch the cueing system and focus on more content for a simpler action/adventure game.  I’ll think about it over food.

:edit: the meatboy animation set so far. Each I make seems to get worse than the previous. Meatboy

Comments

Gopher
15. Feb 2011 · 22:10 UTC
progress continues, tho at some point I gave up on the 48h deadline entirely. Half my time yesterday was spent on refactoring some code I’d hastily designed wrong; it could’ve waited until after the compo, but it just bugged me too much to leave it like it was, and it was already clear I wouldn’t have much in the way of game finished in time, so I pushed on. The graphics end of the framework is approaching something pretty solid now, tho some tools may be required to make content for it efficiently. Bit more work and I’ll at least release the framework, but while this is a failure as an LD entry, I’ll probably make a lot more use of the framework I’ve built than I would have from a particular thrown-together game, so it’s not all bad. Need to get the kinks out of the sprite attach code, finish the full map loader, and have a good bit of work still to do on monster behaviors, and on abstracting entity controllers in general. And the current hacked-in camera needs to be pulled into a camera class and have a couple of minor features added. And once all that’s done, I’ve still got to implement the cueing language, which will tie all the other pieces together to make the cutscenes.

LD20

Basic foundation classes

I plan on using some of my own libraries for the upcoming LD at the end of the month, so by the rules I’ve got to share them before then, so others can use them. Wouldn’t want to give myself an unfair advantage! Haha.

The first of these I’ve just finished a major overhaul on and have set it up on github. Before I ramble on, the github repository.

This first library really isn’t anything special; it just collects all the foundation code, including window creation and the entry point functions main and WinMain, into a set of static libraries, allowing an application to simply subclass one of the library’s application classes and go.

Features:

Included features, beyond basic window creation:

Event management –  Uses a listener model, allowing objects to listen to by event type and, optionally, only from a particular sender.  System events are translated into application events inside the concrete platform classes, so apps can handle external and internal events the same way.

Asset Management

Simple but effective, allows assets to loaded and referenced by name; extensible system allows new loaders to be defined and associated by file extension. Out of the box currently only includes a primitive bitmap loader, supporting 24 or 32-bit bitmaps, but other libraries to come later will introduce more.

GL Console

this needs a bit more spit and polish, but included and demonstrated in the test app is a simple text console. Takes keyboard input, generates ConsoleCommand events on enter, and provides putstr() and printf() methods for displaying text. Protects input from being clobbered if text is displayed while a user types.

Libraries to come:

Scribe

a set of classes for serializing/deserializing objects using Property and Descriptor classes; supports reading and writing in text and binary formats. Just define a few simple  methods and a ScribeFactory will automatically convert your objects into Descriptors that can be saved to disk or sent over the wire, and just as easily reconstruct the objects on the other end. Hardly revolutionary stuff, but an essential component for any content-driven projects.

Stockings

My socket libraries, currently only including UDP support, but TCP stockings are to come. Out-of-the-box, ready to start exchanging objects using the Scribe library. Event interface allows messages to be sent and received between remote nodes as if they were local. Includes support for sending packets reliably, but continues handling other messages out-of-order while any issues are resolved. Automatically tracks ping time and maintains clock synchronization.

Also includes a collection of synchronization classes: mutexes, semaphores, timers, and some thread-safe containers; these may be moved to the Foundation libraries, but that will likely wait until my next big rebuild of the stockings libraries.

QuickGL

A set of simple classes that make it easier to quickly throw together a 2d opengl application; includes classes for loading, manipulating, and rendering tilemaps and animated sprites, along with a few other things. A few of these are actually in FoundationCommon, as they are used by the GLConsole class.

GlGui

A set of GUI classes implemented natively for OpenGL; rather powerful, but not yet very robust or polished, I haven’t even updated this to work with the previous version of my foundation library, much less the new one. Missing some key classes, but includes buttons, text boxes, images, scroll bars, and a scrolling grid container, and includes support for data bindings. Really quite  slick, I’m quite proud of these classes, just not sure when I’ll get around to updating and finishing them.

phew. If you read all of that, I owe you a beer. For everyone else…

tl;dr: releasing  engine base code I’ll be using in the next LD. Source link.

 

For once I’ll be prepared for an LD!

:edit: that’s what I get posting so late; the zip link was bad. fixed now.
Finished packaging up my base code and some simple prototyping libraries for sound and 2d graphics.

Hands-down the most impressive screenshot of all time…

The screenshot actually doesn’t do it justice; see it in action! (fixed link) (windows only for now, sorry.)

Useful documentation is currently nonexistant, but the gl test project included in the main foundation library repo demonstrates most of the basic features. Gonna put ’em to the test tomorrow morning by seeing how quickly I can throw together a simple 2d game, probably a pac-man clone since I have assets for it already lying around. I’ll be shooting for completion in 2 hours. In any case, at the end of the month when the LD rolls around, I will be ready!

Source is hosted in my github repos. If somebody asks nicely, I might be convinced to .zip the source tree up for people who don’t use git.

Comments

Gopher
09. Apr 2011 · 13:16 UTC
Spent the evening testing these libs by throwing together a quick pacman clone using it. Made a whole list of flaws with the project, and gonna have to implement some more features and republish; in particular, the sound system is even more crippled than I realized, and I need to implement an IApplicationModule for the Quick2DGL libraries to auto-register all the descriptor factory blueprints; doing this manually is a pain, it’s easy to overlook. And finally, need a better base project file, that links in the all the standard app modules and provides some other convenience services to make it easier and faster to get a new project started. First tho got to turn back to my main project, get it updated to use the new libraries in place of the old ones, so it’ll likely be at least a week before I get around to all of this.

It’s downhill from here (in the good way)

first screenshot of my work-in-progress

(click to download current binary build in a zip; windows only, sorry linux/mac guys)

Technical hurdles are cleared, from here it’s mostly content, just need to sketch out some levels, make some sounds, and title/credits screens. If I have time after that, I may add music and an intro cutscene, then it’s just more levels.

Comments

code_glitch
01. May 2011 · 07:35 UTC
nice stuff there

LD21

Unity and Me: 16 Days and Counting

A screenshot of my asteroids clone running in unity

I haven't been this excited about making an asteroids clone since the early 90s.

So, I’ve finally gone and done it. I’ve given up the do-it-all-from-scratch mentality and started learning Unity3d. Wrote a rather lengthy blog on the first 16 days of Unity and iOS, so I won’t go into it all here, if you’re actually interested you can read it there. The end result can be played on the web, though. It’s just an asteroids clone, and 75% of the work applies only to the iPhone version, but I’m still quite pleased. Seemed best to use an established design for my learning project, as an original, unproven, and unpolished design would be a distraction from the goal of learning my new tools and platforms.

Haven’t been on here in a while, had no idea there was a MiniLD this weekend; I may have to enter, not sure yet. Would be a perfect chance to further flex my newly Unity-augmented muscles… but I was planning on relaxing and just working on the design for my next game idea this weekend, taking a couple of days off coding and staring at the computer monitor. Will have to think about it.

Welp, now that I’ve shamelessly plugged my blog and generic game, I’m off to think about dinner options, and possibly play my game on my iphone. I love saying that. My game… on my phone. Only thing that’ll be better is when I get to start saying “my game on your phone.”