I’ve been working on making my framework compatible with Linux (Ubuntu, Mint, etc) so here is the Linux version of ScrambleRND! Get it from my games page and tell me what you think of it, ok?
Whee. Finally got my collision system working properly with the quadtree and camera systems.
When I ask which entities collide with a certain entity, the quadtree returns the entities in the same quad tree node space. Then, a hit-box check is done to see which of those entities overlap the hit-box of my entity. The hit boxes scale with the entity, btw. Last, an image check is done on the remaining entities.
screenshot or it didn’t happen! As you can see in the screenshot, there is only one hit at image level. (HIT*1)
I’m happy! Next thing to do is importing and exporting entity worlds.
A little surprise for you if you’re interesting in classic arcade games. I’ve been creating this nice little remake over the last few days, and now it’s done.
It’s a remake of the classic 2D scrolling shoot’em up. I took the Vectrex version gameplay and made it look like an Atari 2600 game. Also, the terrain is randomized for a little extra fun.
Instructions are in the readme file. You can download the game from my PC games page.
Have fun! And here are some additional screenshots.
Last week I finished my blitzmax port of the java entity framework Artemis. The framework will allow you to use a data oriented design approach to your gaming development.
The 1.0 version of the port is available on my google code page, in the downloads section. You can read about it on the wiki as well.
The download includes a little Asteroids game as well which was built using the framework. The source code is included and you can check out how to use the system and create a simple game with it.
I am now starting work on implementing the system in my map editor so we can enjoy an endless diversity in game objects and structure in the new game. The thing to build now is something like an object set, where each game object is described by which components it holds and the values that go with that component. Something like this:
This defines an enemy, with a transform component: position = 10,10, scale = 1.0, rotation = 50 degrees. It also has a renderform component: the image is loaded from alien.png, and it holds 10 frames of 32×32 each. It is also subject to gravity and its weight is 2.0.
This is very easy to load and save. Also, the editor user will be able to add objects on the fly, add components to it and add it to the map. The objectset is saved with the map itself or separately so it can be re-used for other maps.
Bye for now!
Hi there… I’m back to doing some programming again. The last few weeks have been spent updating some of my Blitzmax modules so I can use them in the toolset I am creating for a new game concept. All modules have unit tests added to them to ensure they work correctly. I fixed a few bugs while making the tests, so that was great. In the process I have updated my google code page quite a bit: wiki pages and downloads have been added for all modules so go take a look here.
I put all the new stuff together and created a basic tile based 2d map editor. After chatting on Google+ for a bit, I decided to go for a location based 2d map instead. As the game will be using large maps some sort of optimization for screen drawing and collision checks is needed and for that I implemented a quadtree. A quadtree divides the world into zones which make object lookup extremely fast. You can find the quadtree module on my google code page as well.
You can see a screenshot of the editor I am creating down here:
The propertygrid, 2d map and 2d grid modules you see in the editor are available at my google code page as downloads or as source code, so go there if you need one of those features for your tools/games.
The new game will need a lot of flexibility, both in behavior and game object structure. The behavior / logic aspect of this will be covered by integrating LUA scripting; expect a post on that from me as well.
To achieve the object structure flexibility I took time to check out component based entity systems, as opposed to traditional OOP object inheritance. I found this great system called artemis but it is written in Java. I am currently in the process of porting this system to Blitzmax. If you are interested in it, you can, again, check out my google code page.
That’s all for now. See you soon.