Completed so far… (1)

Posted in 3D engine on February 3, 2009 by myintkt

Not really a release but this is what I completed so far. Include a SPT Maker beta 0.1 release. SPT Maker is quite stable now and I am going to use it in my upcoming project Atomic Empire casual game

Download Source Codes

Edit: now I update some minor update to the sources download. Please download the source codes again. Here is some test data for Brainiac SPT Maker:

Download Test Images

Enjoy the sources!!!

Brainiac Sprite Maker on the way!!

Posted in 3D engine on January 10, 2009 by myintkt

Finally I am able to chunk out a sprite maker for Brainiac engine.It is half-way finish now and I am hoping to finish it before end of next week. Features currently implemented:
- packing images into sprite with 2 options: optimized for VRAM usage and minimized image output count (VRAM optimization can be better but current one is not bad either given time and effort went into it)
- Pivot and additional prop pivot setup
- some frame manipulation tools
- animation preview mode where user can add another prop to test prop pivot offsets.

Things still need to implement:
- scale back the image when loading if it is scaled outside the program (by Photoshop etc)
- Some pivot alignment tools
- Add support for Alpha buffer
- Add support for Hit-testing buffer
- Add support for Mask buffer(s)
- Support loading of 8-bit images
- implement various animation methods
- shadow and reflection options

OK half-way finished now! Need to implement the other half. After it is finished, I will write the Brainiac font generator.

Brainiac Tool Framework

Posted in 3D engine on June 22, 2008 by myintkt

The next step is to code the Brainiac Tool Framework which will be used by all the tools in Brainiac tool chain. BTF will be similar to the DirectX Sample Framework – just a simple framework including a D3D setup and some MFC framework for GUI programming. I made the decision to use DirectX 9 for all the tools development. This means all game creation must be done on Windows platform though the end result should be cross-platform. But considering that 99.99% of all development system is PC and Windows being the dominance of the PC OSs, it won’t hurt too many developers by making a Window-based development tool now :P

Major requirements in BTF ares

  • Simple D3D Setup with DirectX 9
  • File readers for most image file types: PNG, JPG and BMP
  • File readers for XFile format (and any other 3D file format – *.3ds is another target to support on my game engine)
  • XML parser

So I need to finish the BTF first before start writing tool chains for the Brainiac. The core Brainiac is still a long way to go…. Phew…

First step

Posted in 3D engine on June 22, 2008 by myintkt

Well, I am doing it right this time. The first engine I made is derived from another first engine I made as a school-project. So it makes a lot of reference to it’s first generation engine from which it came and it has to be backward compatible. I need to manually remove all obsolete functions later. This time I am not going for a backward compatibility. I am starting everything from scratch.

For that, I needs to write tools first and am not going to use tools left by the first engine. Bye, bye font generator and PIC format. Here come the SPT format (read Sprite) for picture file, FNT format
(read Font) for Font and GDX format (Game Data in XML) for game data (everything from menu configuration files to custom game data files).

So, for first step, I need to create tools to generate those data. Here is the list:

SPT Image Converter: convert raw image format like png into SPT file. SPT file format not only has just raw image data, it would have alpha buffer, hit-test buffer, and color buffer. It would also have named rectangle marker, custom pivots, animation information, and image compression and automatic pivot adjustment.

Packed Resource File: loading resources by their filename causes a lot of trouble in the past so I gonna use a resource packer and resource meta data to load the resources inside the game. So for example, if I need to load resource with filename “Resource\worker.spt” whose ID is “worker0″ and whose index value is 30, I can load it with ID “worker0″ or index 30. I don’t need to use the actual filename which make replacing graphic easier and less error-prone. And these resources will be packed into a single file. I will not be using the old file packer which pack the entire file structure under the game folder. I will only pack the resources (graphic, sound, game data etc) because they are the files used by the game in most time and don’t need/want for player to edit them. Setting and other file types can stay unpacked and under game folder.

Font Maker: one of the thing I always wanted is a font maker. Right now, making Burmese language game s sucks. It may be because our mother language itself sucks :P (haven’t thought of computers at the time of language creation, aren’t we :P ). Font maker will allow the user to insert any character or add more characters later as needed for localization and we don’t have to recompile the game again whenever the language changes B) And only one font will be loaded for all languages meaning a single font file include all characters for all languages. And they will be loaded only when we need to display a character from specific language – saving a lot of VRAM. Right now, there are separate fonts for separate languages giving me headache for managing multiple language builds :(

These 3 tools will be created first before actually designing and developing the core engine. Wish me luck ;)

Requirements, requirements, requirements

Posted in 3D engine on June 22, 2008 by myintkt

Ok, this is going great! The blog will help me get focus on what I need to do. I am kind of the type who get better ideas when talking to myself than thinking it alone inside my head. Don’t know if anyone else or everyone’s brain works that way. It is like having 2 brains work instead of one on the subject. But I do not have enough humor to talk to myself in the mirror or something. Writing it all down will work just as well. OK, now back to the business.

The first step in making an engine that is decent enough to use but not to get too much “scope-creep” is to have good requirements at start up. And here is what I like to see in my engine:

  • Cached faster 2D rendering
  • 3D rendering support in 2D
  • GUI editor for menu and particle systems
  • Shader effects for 2D rendering including post filtering effect
  • Packed file
  • GUI editor for game data creation (map editor, level editor etc)
  • Better font rendering and support for localization (support for Burmese language as well)
  • Custom compressed image format
  • Traditional 3D rendering support
  • Cross-platform

I know there are a lot of engines that do exactly what I mention in the above requirement but there is no engine that does exactly those in my way :P So I gonna be writing my engine and here is the Brainiac!

The first entry for Brainiac 1.0

Posted in 3D engine on June 21, 2008 by myintkt

Hi, this is my first entry for my development blog for a 3D engine that I will be making in the next 6 months or so called the Brainiac. Brainiac is the DC comics super villain in Superman comics who become more and more powerful with new upgrades every new appearances. So this is what I hope will happen to my engine – become better with every new version, updates and releases.

My reason for writing this engine is for myself :P . Right now, my current engine is not very efficient and require me to do a lot more work than necessary in a professional engine. Not to wonder, it is 4 years old :) So it is an old man who should be retired already :P And I hope this new baby Brainiac will be everything I hope it will be.

It will focus mainly on 2D rendering since I am writing 2D casual games for the time being but I will add 3D support as well in the future. Since line of 3D product likely to come out from my company is tycoon games, the engine will support tycoon type games only.

Well, that’s all for the first post. Hope to get start on this project as soon as possible…

Follow

Get every new post delivered to your Inbox.