About Covenant
Entries
Ludum Dare 26 | Ludum Dare 20 | Ludum Dare 18 | Ludum Dare 16 |
Covenant's Trophies
Archive for the ‘LD #20 – It’s Dangerous to go Alone! Take This!’ Category
An Old Man And His Quest – Postmortem
Time for a quick postmortem of my entry, “An Old Man And His Quest”:
What Went Right
- Initial concept: although I’m not a big fan of this theme, my wife helped me with a basic idea so I could jump right into working on the game
- Getting scripting working: this really helped me get the game working as I intended, and really made it easy to add powers and cutscenes to the game… I’m probably going to merge that component I did in the compo onto the framework for the next time.
- Graphics: by going 3d and using some pixel art skills I picked up on the latest compos, I could do something that didn’t look completely terrible.
- Music: Again, WolframTones served me well for 48 hour game music…
- Cutscenes: I love doing cutscenes, specially in this kind of limited environment… Having to think on ways to twist my meager artistic skills and limited tech is very entertaining for me
- Mixing the “game” stuff and the “menu” stuff in a single framework… All becomes more interesting, and it’s less work to make behave properly, especially with the scripting engine
What went wrong
- Time managment: Again, I failed miserably in estimating development time, most of it by not considering the rest of the things that went wrong
- Going 3d: I almost always think about going 3d and don’t do it because it’s normally harder (even 2.5D like in this game)… This ended up being no exception, and I had loads of problems getting the initial setup working correctly… It also led to some driver-related problems and things like that, that made me loose loads of time… :\ The end result is a mixed blessing: it looks better, but it took longer…
- Bugs: Ran into some bugs after the deadline, which meant the game seems more buggy to everyone than it seems to me… :\ Fixed most post-compo, but that’s too late…
- No time for level design: In all compos, I promise myself I’ll code something simple and let 4 or 5 hours at the end for pure level design, game balancing, tuning and polish… and I always fail at this…
This time was no exception… I had 5 levels thought of, only had time to make 4 (and the last one was terribly unbalanced) - Using Photoshop as level design tool: what seemed like a nice idea ended up being more complicated than it should, which kind of defeated the purpose… next time I think I’ll be back to ASCII text files… or a good tile editor, if I can find one that suits my needs (haven’t found any so far, all demand too much work getting to work properly or require me to write a weird importer)
The game has circa 3000 lines of C++ code and 1100 lines of Lua code, and the framework about 17000.
Tools used:
Code: Visual Studio 2005
APIs: DirectX 9 (Feb), FMod, Win32, Lua
Graphics: Photoshop CS4
Sound: WolframTones (very awesome, only had 20 mins or so to play with it), Midi Converter Free (online free midi to mp3 converter), Sfxr
Blogging: Internet Explorer
Listening music: Winamp
On an end note, I’ll probably grab the 3d tiling stuff and scripting binds and merge it with the rest of my LD framework, for future use… I still want a competition where I can actually spend time working on the game, instead of the technology!
Thanks everybody that participated for an exciting weekend!
Bug fixes (repost)
Sorry about posting this again, but it probably got lost in the traffic and I didn’t get any answers…
What’s the current policy on bug fixes?
People have found a couple of bugs on my entry so far (one pertaining ambient light levels, the other the behavior of the ESC key)… I’m I allowed to correct these bugs (since the first one kind of ruins the second level, and the other is just silly)?
I also have another bug concerning full screen (if the resolution is not that of the desktop, it just shows a black screen), would like to fix that so that people don’t have to edit a text file…
I remember we had some compos that allowed for bug fixes after the end, but I’m not sure what’s the current status…
Bug fixes…
What’s the current policy on bug fixes?
People have found a couple of bugs on my entry so far (one pertaining ambient light levels, the other the behavior of the ESC key)… I’m I allowed to correct these bugs (since the first one kind of ruins the second level, and the other is just silly)?
I also have another bug concerning full screen (if the resolution is not that of the desktop, it just shows a black screen), would like to fix that so that people don’t have to edit a text file…
I remember we had some compos that allowed for bug fixes after the end, but I’m not sure what’s the current status…
And done!
Finally done!
The only things I couldn’t finish was a 5th level (so only 4 easy levels), and the binding of trigger points to script (that I manage not to need)…
The part I had more fun with this game was the fact that the game logic was about 60% scripted, which is quite neat… Even the menus and stuff take place “in game”…
Tomorrow I’ll post a post-mortem of the game and the timelapse for the compo…
This is not one of my best entries, but it was quite demanding, technically and in terms of game design… This game could really benefit with better tools for level design, or more time to do it in Photoshop…
Final tasklist:
Framework workingLoading a level data (from a DDS image)Rendering the level (3d generated from the level data)Drawing the characterRendering characterDesign levels/items so I know what to implementSpawn points- Bind spawn points to scripting events
Draw “old man” and do speech system (seems like a polish thing, but it’s kind of important…)Give and take objects to the player (through scripting)Spawn creatures and give them rudimentary AI (also through scripts)Draw and animate impsWand of UnsummoningEnd of level (portal thing)Main menuTitle screenGame over screenSoundMusicLevel 1Level 2Level 3Level 4- Level 5
Load/Save- ….
Looking forward to playing all the games and to see comments on mine!
6 hours to go…
…not nearly enough time to do everything I still wanted, as usual!
Anyway, got loads of stuff done (including time manipulation stuff)… I even implemented a portal system using only the scripting engine I built in the game! Of course, this kind of stuff costs time, so I’m guessing that I need to be better at doing it, or preroll it as part of my framework, need to think about that…
Anyway, got some ideas on how to make the game over, main menu, etc, while saving some time, so I don’t have much stuff to do, although it’s stuff that takes some time:
Framework workingLoading a level data (from a DDS image)Rendering the level (3d generated from the level data)Drawing the characterRendering characterDesign levels/items so I know what to implementSpawn points- Bind spawn points to scripting events
Draw “old man” and do speech system (seems like a polish thing, but it’s kind of important…)Give and take objects to the player (through scripting)Spawn creatures and give them rudimentary AI (also through scripts)Draw and animate impsWand of UnsummoningEnd of level (portal thing)- Main menu
- Title screen
- Game over screen (?)
- Sound
- Music
Level 1Level 2Level 3Level 4- Level 5
- Load/Save
- ….
Lava and level 2
Got the leve logic done, and finished level 2, complete with lava pits and the Orb of the Sun!
9 hours to go and millions of things still to make (and a WoW raid in the meantime)… So I got about 4 hours of real work ahead of me… :\
Task list:
Framework workingLoading a level data (from a DDS image)Rendering the level (3d generated from the level data)Drawing the characterRendering characterDesign levels/items so I know what to implementSpawn points- Bind spawn points to scripting events
Draw “old man” and do speech system (seems like a polish thing, but it’s kind of important…)Give and take objects to the player (through scripting)Spawn creatures and give them rudimentary AI (also through scripts)Draw and animate impsWand of UnsummoningEnd of level (portal thing)- Main menu
- Title screen
- Game over screen (?)
- Sound
- Music
Level 1Level 2- Level 3
- Level 4
- Level 5
- Load/Save
- ….
Items, AI, death and HUD…
Done loads of stuff since I woke up 4 hours ago or so… Not so much as I actually needed to finish this like I’d like, but good nevertheless…
Got the item system working (scripted), and implemented the first item (the Wand of Unsummoning)… All its behavior is script driven, which is quite nice. It fires bolts of magic that unsummon the evil rabbits.
Also finished the rabbit AI (just wander and chase the player if it gets too close). Player can now be hit by the rabbits and die:
Most of the gameplay code is done, still need the flow code (main menu to level, level to another level) and win situation (getting to the end of the area), besides music and sound… So, a whole lot of work still ahead!
Task list:
Framework workingLoading a level data (from a DDS image)Rendering the level (3d generated from the level data)Drawing the characterRendering characterDesign levels/items so I know what to implementSpawn points- Bind spawn points to scripting events
Draw “old man” and do speech system (seems like a polish thing, but it’s kind of important…)Give and take objects to the player (through scripting)Spawn creatures and give them rudimentary AI (also through scripts)Draw and animate impsWand of Unsummoning- End of level (portal thing)
- Main menu
- Title screen
- Game over screen (?)
- Sound
- Music
- Level 1
- Level 2
- Level 3
- Level 4
- Level 5
- Load/Save
- ….
Unholy rabbits!
Dinner was great:
And after, well, I started by drawing some imps, but the end result was that they looked more like hell-rabbits than imps, so I decided to change the story…
They have a particle system to be more hellish…
Anyway, they already wander around (they don’t give chase yet), and all is script driven (which is quite nice)…
Anyway, I’m calling it for today… 24 hours still to go, and I have most of the actual game to make (including the object management, etc). Anyway, I should be able to finish this one, at least enough for the compo…
Task list:
Framework workingLoading a level data (from a DDS image)Rendering the level (3d generated from the level data)Drawing the characterRendering character- Design levels/items so I know what to implement
Spawn points- Bind spawn points to scripting events
Draw “old man” and do speech system (seems like a polish thing, but it’s kind of important…)- Give and take objects to the player (through scripting)
Spawn creatures and give them rudimentary AI (also through scripts)Draw and animate imps- Wand of Unsummoning
- ….
Speech system
And the speech system is in-place… Was a bitch getting right: getting the projected position of the 3d position of the speaker so I could write the text there, center the text, script binds, etc…
Was hard making it visible in all circumstances aswell… Finished writing the text twice, one in black and offset and then in the normal color… Worked quite well…
This is finally shaping up, although it’s not even close to being a game… Next step is probably to draw and animate the imps, making them spawn in their proper positions and giving them AI… Probably will call it then…
Task list:
Task list:
Framework workingLoading a level data (from a DDS image)Rendering the level (3d generated from the level data)Drawing the characterRendering character- Design levels/items so I know what to implement
Spawn points- Bind spawn points to scripting events
Draw “old man” and do speech system (seems like a polish thing, but it’s kind of important…)- Give and take objects to the player (through scripting)
Spawn creaturesand give them rudimentary AI (also through scripts)- Draw and animate imps
- ….
Old man…
This last hours don’t show much improvement visually:
But below the hood, I’ve done tons of stuff, mainly a Lua-based scripting system capable of driving cutscenes and other game events! Really proud of it, since it can really makes the code cleaner and handling of the lifespan of objects easier…
The old man in the screenshot appears in a cloud of smoke and will give the object needed for the current level… Just need to add the talking component, which shouldn’t be too hard…
Problem is that I’m running short on time (30 hours to go, but I won’t work that whole time, since I have to rest a bit for work next week…
)…
Task list:
Framework workingLoading a level data (from a DDS image)Rendering the level (3d generated from the level data)Drawing the characterRendering character- Design levels/items so I know what to implement
Spawn points- Bind spawn points to scripting events
Draw “old man”and do speech system (seems like a polish thing, but it’s kind of important…)- Give and take objects to the player (through scripting)
Spawn creaturesand give them rudimentary AI (also through scripts)- ….
Got a character!
This has been slow going, but on the bright side, my character doesn’t look like total puke (just like semi-puke)!
After a great lunch, courtesy of my awesome wife:
got the character moving through the level, with collision detection (my old nemesis… I always get stuck on this and end up with ugly code!)… Even have a small shadow on his feet (helps the visuals, not looking like he’s floating)… The ground texture now seems terrible, so I probably need to work on that (think I just need to tweak the contrast a bit)…
Now I need to take a step back and think what I want to do with the game from here on… Current task list:
Framework workingLoading a level data (from a DDS image)Rendering the level (3d generated from the level data)Drawing the characterRendering character- Design levels/items so I know what to implement
- Spawn points
- Bind spawn points to scripting events
- Draw “old man” and do speech system (seems like a polish thing, but it’s kind of important…)
- Give and take objects to the player (through scripting)
- Spawn creatures and give them rudimentary AI (also through scripts)
- ….
Level loading and rendering
This is not going too well, loads of small things in the 3d system going wrong (why do I insist on trying 3d for this!!!!)… this one ended up just being a small problem in the redundant renderstates checking (was initializing the value with the wrong number)…
Anyway, I can now load a level from a DDS file:
And create level geometry… already had the idea of having just one huge level (works well with my idea) so I already prepared this so it has some clustering done (NxN blocks per mesh, so I can do culling easily)…
Also added texturing so this doesn’t look so ugly… Only use one texture for the whole level, but it has a kind of atlas that I can setup easily:
My graphic skills suck so badly…
I’m having 3d billboard as “characters” in the game, so no modelling is required…
So, my current task list is:
Framework workingLoading a level data (from a DDS image)Rendering the level (3d generated from the level data)- Drawing the character
- Rendering character
- Design levels/items so I know what to implement
- ….
Now I need to get a story going, so I know what to draw as a main character…
Getting ready to start…
Hey all!
So the theme was kind of unexpected, although it won with a big margin!
Saw the theme at 3am (local time) and after discussing it with my wife, she gave me a good idea and I just built on that…
On my game, the player will have an item given at the start that modifies in some way the “game world” and he has to pass through the level using it… The cool thing is the item has usually a “bad thing” associated with it, so it really makes the level more dangerous, not less!
Should be able to pull this off…
Alread loads of cool stuff lying around…
Task list:
- Framework working
- Loading a level data (from a DDS image)
- Rendering the level (3d generated from the level data)
- Drawing the character
- Rendering character
- Design levels/items so I know what to implement
- ….
Ecce ego particeps
Didn’t want to do the same title as everyone else, so decided to translate “I am going to participate” to latin in Google translate… It’s kind of awesome, to be honest…
Anyway, same drill as always.. C++ with DX for graphics and FMOD for audio, through use of a small framework I’ve built on in previous competitions (nothing game related, just some helpful functions):
My framework just features:
- D3D9 initialization and some helpers
- FMOD interface for sound
- 2d Sprites
- 2d Particle System (extended the old one, now supports different colors through the lifetime of the particle)
- Text (now working in full screen!)
- 3ds file loading (only tested with 3ds generated by 3d Studio Max). Loads lights, meshes and cameras.
- Small simple math library (vectors and quaternions)
- Simple 3d camera handling system (just look at operation)
- XML loading/saving (might come in handy for configuration files, load/saves, etc. The XML loader was created by Frank Berghen, not me… the writer is all me, although the loader also has save functions, but I’m too lazy to figure out how they work)
- 3d particle system (based on the 2d one, so very rudimentary)
- 3d sprite system (quads that always face the camera)
- LUA library support (it’s actually ripped from my engine, so it’s a good support system for LUA)… Want to try scripting tutorial and cutscenes…
- DDS image loading for an offscreen buffer (just supports R8G8B8A8 images) – probably going to use it for map design (instead of the usual text file thing)
On the tools side:
- Visual Studio 2005 (hope I can get used to it again, been using 2010 at work)
- Photoshop CS5 (for 2d graphics and textures if I decide to adventure into 3d, and for map creation, etc)
- 3d Studio Max (for modelling if I go 3d, or for title screens and such otherwise)
- sfxr (or Bfxr) (for audio effects)
- Wolfram Tones (for the music creation – fun tool, saves loads of time) and MIDI Converter Free (to convert the MIDI generated by Wolfram Tones to OGG)
The themes don’t look very promising this time, to be honest… loads of them seem like they’ll just spawn the same game over and over again from different people, but I’m just a grumpy old coder…
Anyway, very excited, haven’t done a single line of game code for ages, need to get that out of my system to go back to the real (boring albeit well-paying) world…
Good luck everyone!
Tool question….
Hey all…
I’ve been thinking about this and can’t seem to find a good answer inside myself…
I have this small framework I’ve used in previous competitions, available to everybody, etc… It’s just some init code, camera stuff, 2d blits, etc…
Thing is, I’ve been working on my 3d skills and I wanted to get some characters into that framework, but to get skinned characters (and animations) into the mini-framework I’ll have to do an exporter from 3d Studio… I already have one for my engine that I use for work stuff, and I can use it legally… So I can export on the proprietary format, so I can do an importer for that format…
So the question is, can I use that? Can I use my custom exporter without supplying it to anybody, so I can use 3d for real?
I can see arguments that allow me, and others that don’t, so I’d like your input on this… If I had more time available, I’d just create a silly exporter thing for 3d Studio and supply that with my framework (not sure if I could legally, since it uses the maxsdk which isn’t closed source and under NDA), but with my current workload and time available ’till the compo, it’s impossible for me.
So, what you guys think? Can I use my exporter as a tool, even if it’s not available for everybody?
















