{"id":1058,"date":"2014-04-25T19:57:33","date_gmt":"2014-04-25T18:57:33","guid":{"rendered":"http:\/\/shadowcovenant.com\/blog\/?p=1058"},"modified":"2014-04-25T19:59:58","modified_gmt":"2014-04-25T18:59:58","slug":"another-ld48","status":"publish","type":"post","link":"http:\/\/shadowcovenant.com\/blog\/2014\/04\/25\/another-ld48\/","title":{"rendered":"Another LD48!"},"content":{"rendered":"<p>It\u2019s that time of the year again: <a href=\"http:\/\/www.ludumdare.com\/compo\">Ludum Dare 48-Hour Game Development Competition<\/a>.<\/p>\n<p>I\u2019m participating on this one again, and I\u2019ll be posting updates on this blog, and on Twitter (@shadowcovenant, if you want to follow me), and also on the LudumDare website\u2026<\/p>\n<p>I\u2019ve updated my basic LD48 framework with some stuff I think I may need (nothing game related, just some stuff most engines have out of the box)\u2026<\/p>\n<p><a href=\"http:\/\/shadowcovenant.com\/blog\/wp-content\/uploads\/2014\/04\/image.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px\" border=\"0\" alt=\"image\" src=\"http:\/\/shadowcovenant.com\/blog\/wp-content\/uploads\/2014\/04\/image_thumb.png\" width=\"645\" height=\"506\" \/><\/a><\/p>\n<p align=\"justify\">You can download the framework <a href=\"http:\/\/www.shadowcovenant.com\/ld\/LD29_Framework.rar\">here<\/a>, if you want to use it (it has some sample applications that show most if not all the features). Current features:<\/p>\n<ul>\n<li>\n<div align=\"justify\">D3D9 initialization and some helpers <\/div>\n<\/li>\n<li>\n<div align=\"justify\">FMOD interface for sound <\/div>\n<\/li>\n<li>\n<div align=\"justify\">2d Sprites (with sprite caching, etc) <\/div>\n<\/li>\n<li>\n<div align=\"justify\">2d Particle System <\/div>\n<\/li>\n<li>\n<div align=\"justify\">Simple UIButton for easy menus<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Text (through <a href=\"http:\/\/www.freetype.org\/freetype2\/\">FreeType 2<\/a>)<\/div>\n<\/li>\n<li>\n<div align=\"justify\">3ds file loading (only tested with 3ds generated by 3d Studio Max). Loads lights, meshes and cameras. <\/div>\n<\/li>\n<li>\n<div align=\"justify\">Small simple math library (vectors and quaternions) <\/div>\n<\/li>\n<li>\n<div align=\"justify\">Simple 3d camera handling system (just with a \u201clook at\u201d operation) <\/div>\n<\/li>\n<li>\n<div align=\"justify\">XML loading\/saving (might come in handy for configuration files, load\/saves, etc. The XML loader was created by Frank Berghen, not me\u2026 the writer is all me, although the loader also has save functions, but I\u2019m too lazy to figure out how they work) <\/div>\n<\/li>\n<li>\n<div align=\"justify\">3d particle system (based on the 2d one, so very rudimentary) <\/div>\n<\/li>\n<li>\n<div align=\"justify\">3d sprite system (quads that always face the camera) <\/div>\n<\/li>\n<li>\n<div align=\"justify\">LUA library support (it\u2019s actually ripped from my engine, so it\u2019s a good support system for LUA)\u2026 Last time I used cutscenes and scripting, and loads of the game code was much simpler because of that\u2026 <\/div>\n<\/li>\n<li>\n<div align=\"justify\">DDS image loading for an offscreen buffer (just supports A8R8G8B8 images). Might be useful for some level design stuff, although I\u2019ll probably go back to my old days of text files. <\/div>\n<\/li>\n<li>\n<div align=\"justify\">3d Tilemap (Kind of a blocky heightmap with an automatic texture atlas generation and partition of the map in chunks for possible culling (not implemented)). <\/div>\n<\/li>\n<li>\n<div align=\"justify\">Voxel system (almost fast enough for realtime regeneration)<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Simple geometry generation (quad, cube, spheroid, caps and cylinders) <\/div>\n<\/li>\n<li>\n<div align=\"justify\">Special effect objects (sparks, explosions, although the explosion require some authoring)<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Full-screen effect systems (to implement glows, or invert the colors, or add displacements, etc)<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Full shader-based rendering system (no fixed-function pipeline), with simple lighting system (only shadowless point and spot lights, although directional lights should be easy to implement, just a matter of adding to the shaders). Shader system is built with uber-shaders in mind, with easy to add per-material properties (material color for example) and system-wide constants (ambient light, for example).<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Launcher functions (a dialog box that pops and asks for resolution, sound volumes, window\/full screen, etc, in 3 easy lines of code)<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Simple navigation mesh generation and path finding (based on <a href=\"https:\/\/github.com\/memononen\/recastnavigation\">Recast<\/a>). It enables to add objects to a NavMesh object (not all objects work yet), and it will build the navigation mesh, which can be queried\u2026 It\u2019s easy to extend, if you know how to use Recast. This component is on a separate library, so you \u201copt-out\u201d of it easily.<\/div>\n<\/li>\n<\/ul>\n<p align=\"justify\">&#160;<\/p>\n<p>On the tools side, I\u2019ll use:<\/p>\n<ul>\n<li>Visual Studio 2010 <\/li>\n<li>Photoshop CS5 (for 2d graphics and textures if I decide to adventure into 3d, and for map creation, etc) <\/li>\n<li>3d Studio Max (for modelling if I go 3d, or for title screens and such otherwise) <\/li>\n<li><a href=\"http:\/\/drpetter.se\/project_sfxr.html\">sfxr <\/a>(or <a href=\"http:\/\/www.bfxr.net\/\">Bfxr<\/a>) (for audio effects) <\/li>\n<li>Live Writer for blogging <\/li>\n<li>Everything I get my hands on\u2026 <\/li>\n<\/ul>\n<p>&#160;<\/p>\n<p>No idea what I\u2019m going to use for music, but probably what I\u2019ll go the same route as last time, asking a friend of mine to use his gear\u2026 if he\u2019s available, of course\u2026 <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none\" alt=\"Smile\" src=\"http:\/\/shadowcovenant.com\/blog\/wp-content\/uploads\/2014\/04\/wlEmoticon-smile.png\" \/><\/p>\n<p>My expectations for this compo are fairly high\u2026 My last attempt was on the top 10%, so I want to do better this time (although the competition is stiff). The remaining themes are also not very inviting, except for Glitch (that would allow me to make the cyberspace action game I\u2019ve been thinking about!) <\/p>\n<p>Probably going for my usual 48-Hour compo drill\u2026 Go to bed at normal hours, wake up at 3am to see the theme and go back to bed\u2026 then start working early in the morning!<\/p>\n<div id=\"tweetbutton1058\" class=\"tw_button\" style=\"\"><a href=\"http:\/\/twitter.com\/share?url=http%3A%2F%2Fshadowcovenant.com%2Fblog%2F2014%2F04%2F25%2Fanother-ld48%2F&amp;text=Another%20LD48%21&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fshadowcovenant.com%2Fblog%2F2014%2F04%2F25%2Fanother-ld48%2F\" class=\"twitter-share-button\"  style=\"width:55px;height:22px;background:transparent url('http:\/\/shadowcovenant.com\/blog\/wp-content\/plugins\/wp-tweet-button\/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;\">Tweet<\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>It\u2019s that time of the year again: Ludum Dare 48-Hour Game Development Competition. I\u2019m participating on this one again, and I\u2019ll be posting updates on this blog, and on Twitter (@shadowcovenant, if you want to follow me), and also on the LudumDare website\u2026 I\u2019ve updated my basic LD48 framework with some stuff I think I [&hellip;]<\/p>\n<div id=\"tweetbutton1058\" class=\"tw_button\" style=\"\"><a href=\"http:\/\/twitter.com\/share?url=http%3A%2F%2Fshadowcovenant.com%2Fblog%2F2014%2F04%2F25%2Fanother-ld48%2F&amp;text=Another%20LD48%21&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fshadowcovenant.com%2Fblog%2F2014%2F04%2F25%2Fanother-ld48%2F\" class=\"twitter-share-button\"  style=\"width:55px;height:22px;background:transparent url('http:\/\/shadowcovenant.com\/blog\/wp-content\/plugins\/wp-tweet-button\/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;\">Tweet<\/a><\/div>","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[237,144,239,238,143],"class_list":["post-1058","post","type-post","status-publish","format-standard","hentry","category-ludumdare","tag-237","tag-dare","tag-ld29","tag-ld48","tag-ludum"],"_links":{"self":[{"href":"http:\/\/shadowcovenant.com\/blog\/wp-json\/wp\/v2\/posts\/1058","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/shadowcovenant.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/shadowcovenant.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/shadowcovenant.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/shadowcovenant.com\/blog\/wp-json\/wp\/v2\/comments?post=1058"}],"version-history":[{"count":3,"href":"http:\/\/shadowcovenant.com\/blog\/wp-json\/wp\/v2\/posts\/1058\/revisions"}],"predecessor-version":[{"id":1061,"href":"http:\/\/shadowcovenant.com\/blog\/wp-json\/wp\/v2\/posts\/1058\/revisions\/1061"}],"wp:attachment":[{"href":"http:\/\/shadowcovenant.com\/blog\/wp-json\/wp\/v2\/media?parent=1058"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/shadowcovenant.com\/blog\/wp-json\/wp\/v2\/categories?post=1058"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/shadowcovenant.com\/blog\/wp-json\/wp\/v2\/tags?post=1058"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}