<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2230783095682465213</id><updated>2011-07-07T23:38:21.580-04:00</updated><category term='plans'/><category term='widgets'/><category term='rrsse'/><category term='mrmelice- Michael R. Melice'/><category term='GELLATIN'/><title type='text'>Awe+ Engine</title><subtitle type='html'>Check out the story behind every addition to the engine. Every contributor will be dedicated to chronicling the entire process after each code update, so that newcomers can get caught up, and just to show off our work. Send me an e-mail to join this blog!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Scott</name><uri>http://www.blogger.com/profile/18032859460053221025</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_E-NpL1ByqeQ/Sx_jqNd0FHI/AAAAAAAAAEw/rMxMOV1T72I/S220/n664558925_7428.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2230783095682465213.post-5907014187515444166</id><published>2010-01-05T15:33:00.002-05:00</published><updated>2010-01-05T15:51:29.114-05:00</updated><title type='text'>ODE</title><content type='html'>After reading a lot of forum posts about it, I understand Tao.Ode is no longer in development. It's only an implementation of 0.6, and presently ODE is at 0.11.1. Luckily, this dude made .NET bindings, so we can still use ODE!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It also took me all morning to figure out the best way to run the step intervals. Timing is so ridiculously imprecise with both Environment.TickCount and DateTime.Now.Ticks. I honestly wouldn't use TickCount at all, and wouldn't use Ticks for anything smaller than seconds. The best way in .NET is to use Stopwatch, which does the best job possible on any hardware. It enabled me to time the game loop and determine just the right times to fire the step intervals, (and also the ODE calls). I have an enum set up for 30hz and 60hz; 30 will be the default, but the user can actually set it to any number of milliseconds they need.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My next goal is to get an example running with ODE in the engine. I want to stress importance of two main things:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;The physics engine is not necessary in Awe+. Unless the user needs it, it will not be invoked. However, if it is needed, it shouldn't need tons of extra initialization lines, both for ODE itself and for individual physics objects. Still shooting for one-liners here.&lt;/li&gt;&lt;li&gt;ODE allows users to turn off objects to keep them from running physics. By default, I would like to disable objects out of a certain range of view of the window, so large scenes won't have speed inhibited by invisible entities.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Maybe I'm worrying too much.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2230783095682465213-5907014187515444166?l=awesumengine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/5907014187515444166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2230783095682465213&amp;postID=5907014187515444166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/5907014187515444166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/5907014187515444166'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/2010/01/ode.html' title='ODE'/><author><name>Scott</name><uri>http://www.blogger.com/profile/18032859460053221025</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_E-NpL1ByqeQ/Sx_jqNd0FHI/AAAAAAAAAEw/rMxMOV1T72I/S220/n664558925_7428.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2230783095682465213.post-6387523488492057116</id><published>2009-12-30T12:06:00.002-05:00</published><updated>2009-12-30T12:23:39.900-05:00</updated><title type='text'>Tao</title><content type='html'>Dorthu suggested using Lua to allow for engine/game scripting, and it looks badass. Luckily it is also implemented in Tao, as is the Open Dynamics Engine (ODE). I was reading articles about rigid-body physics and trying to interpret open source physics engines, but decided ODE is the most likely option. Dorthu agrees, and hopes this already-stable and decent engine will expand our developer audience. We'll just want to make sure to provide enough tools for the developer who doesn't want to use the physics engine (like for maze games and puzzles and such), because I don't think keyframe interpolation is going to be possible for objects running with physics.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tao includes wrappers for the following, to allow ones Mono project to remain cross platform: OpenGL, 3D audio with OpenAL, simple window creation with FreeGLUT, collision detection and reaction with ODE, Physics with Lua, SDL for loading images and blitting, Cg for shading, GLFW for input from gamepads and mouse/keyboard, PhysFS for grouping resource files, FreeType for fonts, and FFmpeg for streaming video. Whew! They really cover all the bases. We'll worry about sockets last.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2230783095682465213-6387523488492057116?l=awesumengine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/6387523488492057116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2230783095682465213&amp;postID=6387523488492057116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/6387523488492057116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/6387523488492057116'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/2009/12/tao.html' title='Tao'/><author><name>Scott</name><uri>http://www.blogger.com/profile/18032859460053221025</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_E-NpL1ByqeQ/Sx_jqNd0FHI/AAAAAAAAAEw/rMxMOV1T72I/S220/n664558925_7428.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2230783095682465213.post-5008144766673107613</id><published>2009-12-09T11:52:00.002-05:00</published><updated>2009-12-09T12:14:15.537-05:00</updated><title type='text'>Wtf?</title><content type='html'>I've been checking out all the other open-source engines out there, and I've decided on a goal for the Awe+ engine. Awe+ will be the simplest game engine to use. As its original purpose was to replace Game Maker as a simple form of game development, I've realized we can't expect user-developers to read through dozens of pages of documentation to see how the engine works. The features should be blatant through decent example games, and should be simple to use through the use of defaults. Game engines should allow for the creative freedom to make any type of game, but much of the process can be reduced by taking a look at the types of games people want to produce quickly. A newbie developer wouldn't use a full-blown 3D engine to write a simple 2D side-scroller that utilizes only the SDL wrappers. And a 3D developer wouldn't likely use MUGEN as a base. So considering the target audience isn't hardcore game dev teams, (as they likely already use the monstrous OSS engines already out there), we focus on the goals of developers who want to do the least to accomplish their game ideas.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I know, doing the least usually involves making some sacrifices, but as always, there's usually a million ways to solve the same problem. And I'm sure that while using this engine, new developers will pick up enough skills along the way that upon finishing a game, they would immediately have a better implementation idea for their next game.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We won't aim to limit the features of this engine, just make it work simply by default. All the details will be editable. This is another reason why I believe it's a good idea to use C#--users won't have to be that knowledgeable about avoiding memory leaks to get a game running smoothly. I want Awe+ to be the best transition from dreaming about making games to actually making it happen, without being ashamed of using the drag-and-drop Game Maker program.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2230783095682465213-5008144766673107613?l=awesumengine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/5008144766673107613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2230783095682465213&amp;postID=5008144766673107613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/5008144766673107613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/5008144766673107613'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/2009/12/wtf.html' title='Wtf?'/><author><name>Scott</name><uri>http://www.blogger.com/profile/18032859460053221025</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_E-NpL1ByqeQ/Sx_jqNd0FHI/AAAAAAAAAEw/rMxMOV1T72I/S220/n664558925_7428.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2230783095682465213.post-4712010347737956366</id><published>2009-11-24T16:38:00.002-05:00</published><updated>2009-11-24T17:03:03.189-05:00</updated><title type='text'>Two Years Later</title><content type='html'>I obviously lied when I said I would constantly update this blog throughout the entire engine-building process, but I've decided to resume work on both the engine and the blogging. When I started (six posts ago), the idea was to make a fighting game. However, I obsessed about the backend and the engine work became the entire focus. I've never made a full game engine to support more than one game, so some of the original concepts might be used in every engine, or they might be naive and a bad idea altogether. I neither know or care. But, since this project is open-source, I hope it will catch on and prompt suggestions and updates.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In case you haven't heard: I've implemented the Awe+ Engine in Objective-C for the iPhone! It's based on almost everything in the Wiki, and it worked for some simple game demos with animation and collisions. I've tried to get my Obj-C code running in Ubuntu, but it's annoying, so I've started rewriting it in C# with Tao. It is STILL going to be cross-platform (Mono compiler), but it's less stressful and it's garbage collected.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After seeing it in action on the iPhone, I've decided to change some things in C#. I don't know why, but I decided not to give Drawable objects child Drawables. They were all in a single collection inside of each Scene, which is stupid--if they had children collections, Scenes could just inherit that collection-loading/stepping/drawing from Drawable. Also, I'm fairly certain I want to give the option to use polar coordinates. So with polar or Cartesian coord'ed children, relative positioning WRT the parent will be simple.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Stay tuned!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2230783095682465213-4712010347737956366?l=awesumengine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/4712010347737956366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2230783095682465213&amp;postID=4712010347737956366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/4712010347737956366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/4712010347737956366'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/2009/11/two-years-later.html' title='Two Years Later'/><author><name>Scott</name><uri>http://www.blogger.com/profile/18032859460053221025</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_E-NpL1ByqeQ/Sx_jqNd0FHI/AAAAAAAAAEw/rMxMOV1T72I/S220/n664558925_7428.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2230783095682465213.post-6350799521745906699</id><published>2007-12-26T20:13:00.000-05:00</published><updated>2007-12-26T20:22:43.366-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rrsse'/><category scheme='http://www.blogger.com/atom/ns#' term='mrmelice- Michael R. Melice'/><title type='text'>Woah...RRSSE is going to be awesome!</title><content type='html'>Yo, Skitch thx for the briefing last Thursday- Awesomeness!&lt;br /&gt;&lt;br /&gt;So, I wanted to get a jump start on this project so I decided to start with one of the most important tasks... sprite loading... yep after reading an ebook on sdl yeah it seems accomplishible... I typed some code but my computer is having a brain fart and will not compile anything... so...yeah I will keep working on it and continue reading more info... hope to see everyone on this blog soon... also if you have not made your way to the wiki yet go -&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Register&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;NOW&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;kthxbye&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2230783095682465213-6350799521745906699?l=awesumengine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/6350799521745906699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2230783095682465213&amp;postID=6350799521745906699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/6350799521745906699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/6350799521745906699'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/2007/12/woahrrsse-is-going-to-be-awesome.html' title='Woah...RRSSE is going to be awesome!'/><author><name>Michael Melice</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_pr8xeKtQzwQ/SZP6uo739qI/AAAAAAAAADA/kqr0EapOXZc/S220/3b1f537.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2230783095682465213.post-2786575239457054511</id><published>2007-12-02T20:16:00.000-05:00</published><updated>2007-12-02T20:34:08.802-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='widgets'/><category scheme='http://www.blogger.com/atom/ns#' term='plans'/><title type='text'>Lego Code</title><content type='html'>I'm not sure why, but recently, I keep thinking of this project. So far, there is no code at all, but great ideas keep popping into my head. Here's the latest one:&lt;br /&gt;&lt;br /&gt;Aside from RRSSE and GELLATIN, should there be anything else that helps our programmers create games? RRSSE provides the sprite loading, drawing, and overall handling. GELLATIN deals with the timed Step impulses, collision detecting, and Scene handling. What else is left? As I said before in the "Brainstorming" post, we should support common things seen in games, such as meters, counters, etc. But, not every game needs these things! Tetris doesn't need a life bar! The coolest way I can think of to do this is to create snap-on modules. If you need a life bar, include one in your project. Need a timer count-up or count-down? Include that file! The best part, though, will not be the modules themselves, but how they're implemented.&lt;br /&gt;&lt;br /&gt;A module can provide a basic look and style, maybe some properties that can allow for changes in size, positioning, and color. But, some games must provide a sort of style and pizazz for everything on the screen, a style that can't be matched by generic widgets. To solve this problem, there will be a base class for each module, that the generic version inherits. This way, if a programmer wants to make a new, fancy Life Bar for a fighting game, it will have the same format as the generic one. These "contracts" for widgets will allow for extreme flexibility for games and modifications. Now, imagine another snap-on widget in a game that waits until a life bar is down to 20%, then displays a text bubble that says "Oh, no!" If that works with the generic life bar, that can work with ANY life bar.&lt;br /&gt;&lt;br /&gt;The main goal is to make a bunch of "widgets" work independently of one another, but using RRSSEE. Then, widgets can be built on top of others, or extend them somehow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2230783095682465213-2786575239457054511?l=awesumengine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/2786575239457054511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2230783095682465213&amp;postID=2786575239457054511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/2786575239457054511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/2786575239457054511'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/2007/12/lego-code.html' title='Lego Code'/><author><name>Scott</name><uri>http://www.blogger.com/profile/18032859460053221025</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_E-NpL1ByqeQ/Sx_jqNd0FHI/AAAAAAAAAEw/rMxMOV1T72I/S220/n664558925_7428.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2230783095682465213.post-2035418561324838744</id><published>2007-12-01T23:04:00.000-05:00</published><updated>2007-12-01T23:28:10.881-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GELLATIN'/><category scheme='http://www.blogger.com/atom/ns#' term='plans'/><title type='text'>One Layer Above RRSSE</title><content type='html'>While we're at it, why not build a separate layer upon the RRSSE? Or, perhaps, an abstract secondary layer that could be used either on the RRSSE's 2D engine, or some other similar 3D engine...? Ehh, maybe not that second option. But a separate layer would be very helpful! I was thinking about what made Game Maker so helpful, and noticed a big part was collision detecting. However, it gets very ugly in Game Maker: The engine itself checks all around an object to determine if there is a collision, but it only returns a boolean value. The scripter must then determine the direction of the collision. This means the complicated data is simplified to the scripter, who must use the simple result to find the complicated data all over again. Meh, it was good in theory, but perhaps if Game Maker provided a few more functions for collision detecting, it would be better off.&lt;br /&gt;&lt;br /&gt;Our "Game Engine Layer Located Above The Initial Nitty-gritty," or GELLATIN if you will, must allow for single-directional collision detecting (of the four), or a combination thereof. For example, a bullet fired in Space Invaders would only require collision detecting in the negative Y direction, but the player's ship would require it for 3 directions (if the aliens touch from the top, left, or right). Game engines should not be performing superfluous collision detecting! The game code needs to have direct access to the engine to control this. Games ported from Game Maker to GELLATIN+RRSSE will be blazing. 8-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2230783095682465213-2035418561324838744?l=awesumengine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/2035418561324838744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2230783095682465213&amp;postID=2035418561324838744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/2035418561324838744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/2035418561324838744'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/2007/12/one-layer-above-rrsse.html' title='One Layer Above RRSSE'/><author><name>Scott</name><uri>http://www.blogger.com/profile/18032859460053221025</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_E-NpL1ByqeQ/Sx_jqNd0FHI/AAAAAAAAAEw/rMxMOV1T72I/S220/n664558925_7428.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2230783095682465213.post-5286679759097154453</id><published>2007-11-02T22:15:00.000-04:00</published><updated>2007-11-02T23:11:48.532-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rrsse'/><category scheme='http://www.blogger.com/atom/ns#' term='plans'/><title type='text'>The RRSSE!</title><content type='html'>I just had an idea for a great way to start off this engine. First thing will be creating a "Really Really Simple Sprite Engine," that simply allows us to load up sprites and masks, draw them as one, and... that's mostly it. It will accept VERY few parameters other than the image's filename, and give you the bare essentials. We will definitely want to make this portable.&lt;br /&gt;    This will also allow us to do some other simple and fun projects without creating a completely new framework. And best of all, it will be our own. We can say, "I made this little game in a weekend. Nope--no Game Maker, that's written from scratch in portable C++." So not only will it be like 10% of the size of a Game Maker file, but it will compile on GCC for Windows AND Linux. You'll be surprised how a simple set of classes can make the process so much quicker.&lt;br /&gt;&lt;br /&gt;Here's the basic stuff I think RRSSE should have:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;IDrawable&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Load, Draw, Step&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Sprite class&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Load - reads in the image and mask&lt;/li&gt;&lt;li&gt;Draw - outputs the mask + sprite to the backbuffer&lt;/li&gt;&lt;li&gt;Step - change the image depending on the image speed, according to the time interval&lt;/li&gt;&lt;li&gt;Other functions that allow you to specify the files, change the output location, frame speed (for GIFs), and ALSO, some functions for scaling and flipping the image.&lt;/li&gt;&lt;li&gt;Later, if we can figure them out, we could add functionality for screwing with the colors, inverting, making silhouettes, and possibly colorifying.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2230783095682465213-5286679759097154453?l=awesumengine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/5286679759097154453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2230783095682465213&amp;postID=5286679759097154453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/5286679759097154453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/5286679759097154453'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/2007/11/rrsse.html' title='The RRSSE!'/><author><name>Scott</name><uri>http://www.blogger.com/profile/18032859460053221025</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_E-NpL1ByqeQ/Sx_jqNd0FHI/AAAAAAAAAEw/rMxMOV1T72I/S220/n664558925_7428.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2230783095682465213.post-1094697073472339821</id><published>2007-10-30T14:27:00.000-04:00</published><updated>2007-10-30T14:36:02.062-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plans'/><title type='text'>Brainstorming</title><content type='html'>Before starting to make any of the classes, I'll try to list some of the things our engine must support. We of course need classes representing characters, and I'm assuming it would be a good idea to represent each attack with an object too. We also need some classes to do things that we see in other fighting games, like ways to represent text or images that are overlays, like countdowns, countups, "Finish Him"s, etc. Life bars, death counters, and timers in their own class, perhaps..? These kinds of "meters" are overlays that represent a changing value. Numbers and stuff that need to be displayed instantaneously might be a different kind of class.&lt;br /&gt;   All of this crap is going to go into a big list of things to be "Drawn()" and "Step()ped" in a particular order. Just like in Game Maker, these things will have an Order, which is like our Z-buffer. Backgrounds will be drawn first, then characters, then life bars, for example (but there can be unlimited layers). The temporary things that are displayed only for a few frames will be removed from the collection and delete themselves from memory.&lt;br /&gt;    We also need to think about the levels and menus. I guess they will both be derived from the same sort of "Scene" class like before, and we can make a more specific Menu base, and provide tools for making awesome animated "swoosh"ing menus.&lt;br /&gt;        Hmm... that's another thing I'm not too sure about: the pause menu. We'll need a feature of our collections to stop EVERYTHING, and allow another collection to proceed. And when a game ends, we'll need the collection to dump everything and clean up memory. So, maybe a Pause(), Resume(), Destroy() are in order?&lt;br /&gt;    Please list any other features and things you'd like to see, too. Thanks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2230783095682465213-1094697073472339821?l=awesumengine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/1094697073472339821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2230783095682465213&amp;postID=1094697073472339821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/1094697073472339821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/1094697073472339821'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/2007/10/brainstorming.html' title='Brainstorming'/><author><name>Scott</name><uri>http://www.blogger.com/profile/18032859460053221025</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_E-NpL1ByqeQ/Sx_jqNd0FHI/AAAAAAAAAEw/rMxMOV1T72I/S220/n664558925_7428.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2230783095682465213.post-8647400365743455988</id><published>2007-10-29T19:38:00.000-04:00</published><updated>2007-10-29T19:53:20.870-04:00</updated><title type='text'>Introduction</title><content type='html'>Welcome to the new blog, folks! I know the other game isn't finished, but working on two projects will let me work on one when the other frustrates me too much. I also want to take a different approach with this one. Every addition to the game will be detailed in a blog. I won't just post updates when some big new feature is added. Instead, I'm going to be posting dozens of times a week with every little update and plan, to keep everyone in the loop. If you don't understand a concept in the code, you can just look it up in the blog somewhere. We'll also need to make use of the keyword feature to make this system easier. I hope this means I won't be monopolizing the project, as long as every contributor blogs just as frequently!&lt;br /&gt;&lt;br /&gt;    Well, now I suppose I should describe the project. A 2D fighting game engine, upon which we can build many different fighters pretty easily. We can do this by keeping everything modular, in separate files that all work together to create a very simple, badass set of tools for games. I can actually use some classes I wrote for the 220 project, so I'll detail those in another post. In the meantime, everyone post their best ideas on how to make this the best fighter ever!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2230783095682465213-8647400365743455988?l=awesumengine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awesumengine.blogspot.com/feeds/8647400365743455988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2230783095682465213&amp;postID=8647400365743455988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/8647400365743455988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2230783095682465213/posts/default/8647400365743455988'/><link rel='alternate' type='text/html' href='http://awesumengine.blogspot.com/2007/10/introduction.html' title='Introduction'/><author><name>Scott</name><uri>http://www.blogger.com/profile/18032859460053221025</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_E-NpL1ByqeQ/Sx_jqNd0FHI/AAAAAAAAAEw/rMxMOV1T72I/S220/n664558925_7428.jpg'/></author><thr:total>0</thr:total></entry></feed>
