Wednesday, March 10, 2010

J1N Games

Jason Kim's Personal Journey Into Game Development

Archive for October, 2009

Dino Space Shooter in Flash

Posted by Jason On October - 29 - 2009

I’ve taken the time to learn some ActionScript 3 for Flash, and converted my Dino Space Shooter 2D game from DirectX and C++ to Flash ActionScript 3.
The full Flash Project/Script File Source can be downloaded HERE
Controls: Move ship with Mouse, Fire with Left Mouse Button

However this version is missing alot of the bells and whistles of the DirectX/C++ Version of the game (sound,animations,etc.) Its more of a demo of what the game is like.
I am also in the near future planning on adding additions to the Dino Space Shooter game I made. (Full source/release available at: http://www.j1n.org/?p=147 )
The Dinosaurs vs Zombies game that I am working on ( http://www.j1n.org/?p=219 ) is also coming along quite well!

New game I’m working on

Posted by Jason On October - 19 - 2009
Dinosaurs vs Fn Zombies

Dinosaurs vs F'n Zombies

Dinosaurs vs F’n Zombies!

I plan on making it a side scrolling shooter, 4 players on screen at once, with some tower defense mixed in.
I am going to try it in XNA,PC and build it in C# to get myself refreshed on C#.

C++ Lua Script Integration

Posted by Jason On October - 6 - 2009

Game developers and Software Developers often make use of a scripting language to integrate with their C++ applications.  One common one is a free scripting package known as Lua.
Lua was developed for C, but is fully functional with C++.  This example shows how to effect variables,call functions,and create classes in both C++ and Lua, and how they pass data back and forth between each other.
Scripting is a very important process in software development, it allows the developer to quickly change values in a script file and see immediate changes in their application without having to completely rebuild the app.
An example would be lets say in a video game, you have a Player, and his values need to be balanced for the amount of damage he does, or his speed.  Going into source engine and changing this value would take up a lot of time as you would have to rebuild the entire application/engine, instead with script you can just change a few values in a script file and launch the application to see your changes.  This allows for quick-iteration between builds and faster progression testing/application tweaks.

For this code example you will need Lua, available at http://www.lua.org/
I also make use of luna.h an addon for Lua for C++ binding (included in source files) also available from lua.org

C++ Lua Script Integration

C++ Fmod Sound API Integration

Posted by Jason On October - 6 - 2009

This is an example of how to integrate the FMOD Sound API with C++ into a class that can be used in any c++ application.
To compile the user needs to have the FMOD Sound API Includes and Libraries and DLL’s, found at: http://www.fmod.org/

This example also makes use of a singleton design pattern.

C++ FMOD Sound API Integration

C++ Boggle Board

Posted by Jason On October - 6 - 2009

This c++ app builds a given boggle board and finds all the words on the boggle board based upon a given dictionary file.  The way I did this is simply by taking all the combinations of all of the letters on the boggle board
and compared them against a dictionary file.  In this implementation you will notice that it does not find “every” word because there are missing words from the “dictionary.txt” file I downloaded from the Internet

C++ Boggle Board

C++ Memory Manager

Posted by Jason On October - 6 - 2009

This is a C++ example of our own versions of Malloc and Free.  In Embedded Systems, often memory is not readily available and small.  Thus static allocations of memory are often good.
This Memory Manager works with a static allocation of a memory pool.  This way the user knows exactly how much memory they are working with, as opposed to dynamic memory in heaps.
We have a memory pool of something like char[10000] where our malloc returns a pointer in memory in the pool and allocates bytes from the pool, and our free frees up the pointer memory.

C++ Memory Manager

C++ Memory Queue

Posted by Jason On October - 6 - 2009

A FIFO Queue that stores bytes in a static allocated memory pool.  Embedded Systems often have a small amount of memory to work with.  So often times people use a static allocation of memory so they know exactly how much memory they are working with as opposed to dynamic memory on a heap.  This program is an example of how to construct a queue with a static allocation of memory and store values by byte in the memory pool.
The basic idea is you have something like char pool[10000] and pool becomes your static allocation of memory.  Then you can store unsigned char bytes into the char array as a queue, popping off bytes as you need etc.

C++ FIFO Memory Queue

Columbus MMA / IMB-Columbus

Posted by Jason On October - 5 - 2009

Website at http://www.imb-columbus.com

A website for the Mixed Martial Arts Gym in Columbus known as “Columbus MMA” formerly IMB-Columbus (International Martial Arts Boxing Academy)

-Developed with E107 CMS
-Flash Image by me
- Theme and Style Sheet adjustments