Posts Tagged XNA
Project Daedalus Update 4/10
Posted by Daniel in Game Development, Programming, Project Daedalus (2D Platformer), XNA on April 10, 2010
It’s been some time since my last progress update, and I have sort of fallen out of the groove. As such, this is going to be a short post to sort of get back into the swing of things.
I spent a good while last night working out a good solution to adding rotating gear platforms into the Boilerworks. The initial idea was simple. I was going to simply convert the gear texture into a set of vertices and load them up as a collision volume. However, I realized this solution was not going to be viable as I have been using SAT collision, and a single gear polygon would have been a concave polygon (not supported by SAT implementation). I decided to try Distance Grid collision instead of SAT, but the difference was noticeable and caused some big headaches.
It doesn’t look like the good folks at Farseer will be implementing concave polygon decomposition until Farseer 3.0 is released, so I had to take an alternate route.
The end result was simply generating multiple convex geometries programmatically that matched mt gear texture. This ended up working perfectly, and as such we now have some really nice gear platforms ready to be added to levels. A screenshot of the testbed is below.
Hopefully I’ll start updating this a bit more often as development continues.
Upcoming level editor updates
Posted by Daniel in Game Development, Paradigm 2D World Builder, Programming, XNA on July 25, 2009
After switching gears and looking at my editor from an RPG standpoint instead of a sidescrolling standpoint, I’ve noticed a few shortcomings in my editor and engine design.
As such, a few changes are planned.
- Shadow mapping. I have a few different ideas on to how create shadows with a decent degree of alpha transparency. More than likely I will go with a separate B&W image that stores that shadow textures and have the engine draw them as needed with alpha transparency.
- Layers, layers, LAYERS. Three layers, simply, is not enough. As such, I’m going to transition from the current 3 layer system to an unlimited layer system.
- Zooming. RPG maps are going to be somewhat large. I think zooming in and out of the editor will be a very helpful addition.
- Advanced entity spawning system. I’m on the fence with this one. I may or may not implement this in the editor. Part of me thinks creating an NPC editor would be smarter. We’ll see how this pans out though.
That is all for now.
Tile Based Level Editor Progress
Posted by Daniel in Game Development, Paradigm 2D World Builder, Programming, XNA on July 20, 2009
Well it’s about time isn’t it? I finally got around to writing this blog post regarding my tile editor. I recently joined a team to produce an RPG in C# using XNA Studio 3.1, so I figured now would be a good time to put some more work into the tile engine / editor and showcase what is working so far.
As it stands, the editor is pretty robust. Currently it supports three tile layers, a rear, mid, and foreground layer. The rear layer is self explanatory. The mid layer renders over the rear layer to add details, and the foreground layer renders over NPCs, the player, particles, etc (as long as your engine supports it). The foreground layer is currently tinted yellow so it can be distinguished.
Tiles can be drawn in as single tiles and regions. You can also choose to fill an entire layer with a single tile if you so choose.
The editor supports multiple collision types such as impassible, platform, slopes, etc. These are basically just flags that your engine needs to interpret correctly.
The editor also supports spawn points. Any entity your engine supports can be dumped into a plain text file and the editor will parse it. The spawn points can be added dynamically to the map.
It also supports a portal layer which allows for areas of the map to be flagged as a portal. This allows for your engine to do a check against those regions and load a new map as needed.
We also support terrain effects which are regions of the map that will be processed with some sort of effect. My demo shows this being used with a simple water shader I wrote.
You can set the background color of the map to any of the predefined .NET colors, as well as a custom color using the color wheel. You can resize the map dynamically as well as specify the tile size to match your tile set.
The next iteration of this editor will support more layers, likely unlimited using just a list of layers. In addition I plan to implement a sort of multilayer occlusion so that the foreground layer is more or less dynamic. Different layers will occlude other layers, so on and so forth. This is not really needed for a platformer, but will be pretty useful in RPG world building.
Videos:
(My apologies as the audio goes out of sync near the end of part 1 and into part 2, blame Camstudio.)
Level Editor Progress
Posted by Daniel in Game Development, Paradigm 2D World Builder, Programming, XNA on June 10, 2009
I’ve been hard at work on the level editor for my game engine and I figured I’d get something up here showing current progress. It is currently near completion actually. It allows for editing of 3 tile layers, background, midground, and foreground. It also allows for world hazards, spawn points, portals, and multiple collision types. The editor renders using the XNA framework within a normal WinForms application. Output is serialized using the XNA intermediate serializer into an XML file that can be directly loaded into the game itself.
Basically, pretty sweet.
Here is a screenshot for the time being.
Added Flamethrower to Sidescroller
Posted by Daniel in Game Development, Programming, Project Daedalus (2D Platformer), XNA on May 27, 2009
I know I said the last update would be the last before new assets and a level, but I just finished the flamethrower weapon and it turned out really well. I figured I’d share it. Enjoy!
Final Sidescroller Pre-Alpha
Posted by Daniel in Game Development, Programming, Project Daedalus (2D Platformer), XNA on May 26, 2009
This will be the final pre-alpha entry. Sound is up and running now, collision has been improved but is still a little wonky at times. Particle bugs are worked out, and hit detection is much better. Enjoy.
2D Sidescroller Development Continues…
Posted by Daniel in Game Development, Programming, Project Daedalus (2D Platformer), XNA on May 23, 2009
Things are coming together very well. Rudimentary AI routines are implemented, which will serve as the framework for upcoming NPC enemies. A few particle effects are working, as well as world hazards, and a parallax scrolling background.
I hope to have a few enemies functional in the next few days, but this is dependent on time.
More 2D Sidescroller Progress…
Posted by Daniel in Game Development, Programming, Project Daedalus (2D Platformer), XNA on May 19, 2009
The milestones mentioned in my last post where met over the weekend. World collision is now fully functional as well as a fairly decent camera follow that clamps to the world boundaries. Within the next few days I plan to implement basic enemy AI as well as a functional combat system. Soon enough I will be looking to replace these temporary art assets with new, unique art. Unfortunately sprite and tile creation is not my strong point, so if you would like to offer your assistance or know of anyone who would like to help, please comment here and let me know.
Additionally, here is a short video documenting current progress.
2D Sidescroller Progress
Posted by Daniel in Game Development, Programming, Project Daedalus (2D Platformer), XNA on May 16, 2009
I’ve been focused on getting a good 2D sidescroller up and running to add into my portfolio. I decided to stick with C# and XNA for this project, as honestly it is one of the most comfortable environments I’ve ever worked in. So far I’ve managed to use Nando’s tile editor (http://xnafantasy.wordpress.com/) and import the XML maps into my project. With a few edits I managed to build fully functional map and tile classes that now render perfectly.
As it stands now I am in the process of implementing character-tile collision and basic physics. I anticipate within the next few days I will have a functional prototype up and running. Then the fun stuff starts.