TurtleBrains development began with OpenGL as it should help allow TurtleBrains to remain fairly platform independent, at least across personal computers; Windows, Mac OS X and Linux, the first batch of target platforms. At the time I did not realize I was using Read the rest of this entry »
Template Project
May 17, 2015During the last few weeks I’ve been working on a template project to kick off a new project quickly and efficiently. Â After it took 17 minutes to get the project to blank screen for my first OneHourGameJame entry, it was time to improve the pipeline of starting a fresh project. Â The adventure started by Read the rest of this entry »
#1HGJ Entry – Flight
May 15, 2015Here is a game I made in a single hour for OneHourGameJam the theme, and thus title is: Flight
Working on a game in an hour is a great way to learn the weaknesses about your development pipeline, be it in coding, art or audio.  The result is almost always a project that will get thrown away, seriously it took 60 minutes to make, but the experience is certain to teach you something and sharpen game development skills.
This was the third time I had tried the experiment and the first time that TurtleBrains had a working entity manager.  In both previous attempts I had to spend far too much time making sure the entities were cleaned up, so last week I worked on entity management and behavior system, but was unable to really test it until now.  The great thing is this produces a real-world test on these systems.
The art from this project was taken from voxel’s MiniLD sheet just moments before the jam started, and so was not done within the hour.  Immediately had a problem with the template project but with a slight script edit, and some copy/pasting of the concept_kit I had things ready to go.  Flight immediately put Flappy Bird into my mind, and I decided to run with a clone of that due to scope.
Created a block object that would remove itself from the entity manager once it gets too far off screen, and has a constant velocity toward the right with collision.  The player object waits for the user to press either the up or space key to start flying, which increases score and tells the gameplay scene to begin spawning blocks.  Add in a score and best score and the game was actually fairly complete.
Things learned during this hour:
- Need to add a template_entity to the template project.
- The collision and entity management added to TurtleBrains was simply amazing and powerful.
- Audio failed when using bfxr on the Mac, perhaps endianness?
Start your engines!
May 10, 2015Not quite started, but tonight work began on Zoom Car World 3, the demo and learning project I will be using as a stepping stone to write a full blown racing simulator.  For years this project has been placed on the sidelines, but with the current goal to work towards it for an hour a day every day, I am confident things will keep moving.
Current progress was getting back into the old ZCW3 project that was started last summer just before Sonia and I went off to Peru to hike the Salkantay-Inca trail.  The project has some form of very basic track editor in the works, although ultimately a lot more work is still needed.  Currently the efforts are being focused on giving the car an engine that is simulated, at least on a basic level, physically.
This means taking several things in consideration, the inertia of the engine.  All those rotating parts resist changes to the rotation.  If they are not yet rotating, they will fight to remain stationary, and if they are rotating they will fight the urge to slow or speed up.  A torque will be applied to the engine to increase, or decrease if needed, the speed of these rotations.  However I must have some units wrong or have yet to combine all the parts in the code correctly.
angularAcceleration = outputTorque / engineInertia; angularVelocity = angularVelocity + angularAcceleration * deltaTime; engineSpeedRPM = angularVelocity / tbMath::kTwoPi * 60.0f;
That is essentially what I believe I need to do.  angularVelocity should be in radians a second from everything I understand, and outputTorque and engineInertia in Newton-meters (Nm).  This would make engineSpeedRPM, in revolutions-per-minute to be 60 times angularVelocity over a full rotation (two-pi).  This does make sense to my brain, however the results, rate at which the engine speed increases / decreases is not quite what I was expected with no clutch or drive train.  It takes a good 3 seconds to go from 1000rpm to 8000rpm and I would be expecting this to be like a second.  Will continue tweaking, so stay tuned for updates.
#1HGJ Entry – Survive
May 9, 2015A quick entry for the 4th OneHourGameJam entry: Survive.
Working on a game in an hour is a great way to learn the weaknesses about your development pipeline, be it in coding, art or audio.  The result is almost always a project that will get thrown away, seriously it took 60 minutes to make, but the experience is certain to teach you something and sharpen game development skills.