PDA

View Full Version : "Managed" Megaman Engine


Maxamor
11-05-06, 04:28
Hi all. I'm in the process of coding a Megaman engine in C#. I'm using Managed DirectX 9, and the game is your standard 2.5D action/platformer. I'm trying to replicate the physics and movement of the original (NES) Megaman games.

This will require DirectX 9C and the .NET Framework 2.0. This means that right now, it's only for Windows machines (and maybe some Linux boxes for you tricky tricksters!)

The engine itself is about 5% done. I'm not really sure on how to judge the "completeness" of it. It'll be done when it's done.

Right now, I'm working getting maps working. Here's a screenie:
[Image taken down temporarily.]

Not really much to see.

I get a decent framerate, about 420fps in windowed mode. 60fps if vsync is on (duh).

There's no story or anything, I'm going to try and clone Megaman 1, or at least until the engine part is complete. Then i'll see about writing an original story, etc...

YinYang
11-05-06, 04:52
If it were a MMX engine, I would use it for sure!

Maxamor
11-05-06, 07:12
Well, if this goes well, that'll be the next step. That's really what I want to make but I feel I won't be able to until I complete something a bit more basic.

My previous attempt at an MMX engine came to screeching halt. That was in C++, using the Allegro library. But that's another story.

rickysio
15-05-06, 12:30
Screenie shoes 1,2,3,4...
Anyway, why do you say its 2.5D?
MM1 is strictly 2D

sovietcommando
15-05-06, 16:12
Screenie shoes 1,2,3,4...
Anyway, why do you say its 2.5D?
MM1 is strictly 2D
2.5D refers to the angle that the viewer sees the sprites in. Strictly 2D would mean that we can only see the profile of each sprite and never the front of them, unless they're turned in our direction.

rickysio
16-05-06, 09:30
Still thought it would turn out to be like MMX7.
So yes, post a demo soon!

Maxamor
09-06-06, 04:59
The reason I mentioned it was "2.5D (http://en.wikipedia.org/wiki/2.5D)" is the fact that I'm actually using Direct3D, but projecting everything in 2D. So it's 2D in 3D.

This is just an update as for the progress of the engine itself: I'm working on undoing some coupling mistakes with a few classes I wrote right now. But so far, animations, and scrolling maps work.

Sprites can be scaled, rotated, etc. This would make it possible to modify it into a Megaman X game, or even Megaman Zero-like game.

I will post more screen shots when I get the Tileset format I'm writing done. Slow and steady wins the race--or so they say.

I am planning on releasing maybe a screen saver or something using this engine when it's developed that far. Which actually shouldn't be so far off. As far as a playable demo goes, I have no ETA for that.

Now that I look at it, the originial screen I posted is very ugly. The code is actually much prettier than that ;)

I actually have a programming blog going, which can be viewed here (http://maxamordotnet.blogspot.com/).

Maxamor
29-07-06, 02:56
Hello. It's been a while since this thread has been updated. I have decided to change the direction of this project, and it's probably in a more positive direction.

I pondered: "Why clone Mega Man 1 when I could just play it on an emulator? Who would want to play mine when they can easily play the real-deal?"

Which made me change the direction of this project. I'm not cloning Mega Man 1. I am, however, cloning the NES Megaman "engine" per-say. But in a more extensible way--e.g. Mega Man X eventually.

This way, I have a fully-controllable framework ready. Once that's ready, story line/character/etc can be developed.

But, for the curious, here's a screen shot of what's happening in managed megaman land:

http://www.mcpigeon.com/maxamor/poopydoodles/images/wips/mmm/mmm-tiled-01.gif
Map-editing mode in the works...

http://www.mcpigeon.com/maxamor/poopydoodles/images/wips/mmm/mmm-tiled-02.gif
Exciting XML-based tile sets + scalable sprites.

http://www.mcpigeon.com/maxamor/poopydoodles/images/wips/mmm/mmm-tiled-03.gif
Cheezy intro screen. More of a sprite-placement test than anything else.

So there's a small update. This project is not dead, just slow since I'm solo and don't need any help right now.

Hopefully this turns into something nice :)

Maxamor
19-09-06, 20:26
Engine is progressing slowly--but progressing. Here are some things that have been added or updated:

Core Re-written and Re-structured
Gamepad Support (Configuration Tool in the works...)
Developer Tool - Animations
Inter-Object Events
Object Birth & Death
Gamestate-level Finite State Machine
Sprites Working
Text Working (Custom Font Files)


Things that I am currently working on:

Keyboard Support
Chracters (Megaman, Enemies, Bosses, Etc...)
Level Format (For Serializing and Level Editor)
Character Format (For Serializing and Editor)


A larger part of the trime I spend is not just building the game, but building the tools to build the game (content creation tools) instead of writing each sprite texture location for every frame in every animation by hand...

I think I'll have something worth showing off soon enough...

The current requirements are:

DirectX Runtime 8/8/2006 (http://www.microsoft.com/downloads/details.aspx?FamilyId=2DA43D38-DB71-4C1B-BC6A-9B6652CD92A3&displaylang=en)
.NET Framework Runtime 2.0 (http://www.microsoft.com/downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en)


Also, I'm thinking about changing the name of the project something more appealing. Any suggestions?

Maxamor
22-09-06, 04:56
So, with the information I read here (http://www.gamedev.net/community/forums/topic.asp?topic_id=415654), Managed DirectX 2.0 was only intended for Beta and will never see a "Released" version. In fact, it won't even work after October 5th, 2006!

This means that I will have to port over my existing game framework to use the XNA Framework. This means (nearly) a second we-write of the entire project, which shouldn't take too long, and in the end be beneficial. If what I hear about the XNA Framework is true, the game will not only work on a PC (equipped with the Framework of course) but also on the XBox 360. Which would be cool--if I had one.

Either way, this pushes back anything I had said before even further. But I may be able to make the game and the engine more robust that I had planned to initially. My main focus is still getting something previewable together.

Microsoft is a ninja. :g-ninja:

Maxamor
04-10-06, 22:34
The conversion from MDX to XNA is not bad at all. I'm about 40% complete in conversing the core.

The project has been renamed (it has been for some time, but I didn't bother to tell anyone ;) ) and is now knows as "M3E," which stands for "Maxamor's Mega Man Engine" and I now have a game in the works. I have selected two robot masters--one of which work has already been started on.

More details coming soon.

nycbomber
09-10-06, 22:52
thanks for the update

RyuReiatsu
10-10-06, 00:28
Wait up, what's that?

sovietcommando
10-10-06, 00:35
Wait up, what's that?
It's a game engine that mimics Megaman 1. It's in the first post.

RyuReiatsu
10-10-06, 00:42
It's a game engine that mimics Megaman 1. It's in the first post.

Ow, when I 1st read it I was sleepy so I didn't understand a thing.
The 2nd time I had a headache so I didn't bother to read properly.
Since then I never read it again lol.
Sorry for asking such questions.

A game engine eh? So... If I'm right, he's making a "Megaman1 stage maker"?

megajosh2
10-10-06, 00:52
I'm glad that you're makign progress. I make 32-bit, so Y'know, I can't use this much, at all, a little bit...

Maxamor
12-10-06, 06:42
The scope of the project has changed from it's initial idea. There is no use in making a clone of Megaman 1. Nobody will play it. Why? Everyone has the rom, or maybe even the real game, which they can easily play.

I'm building an engine so I can create a "classic nes Megaman game" on the PC platform from the ground up.

It's not going to be like Game Maker. If I do choose to expose the API and source for this project, you will have to know how to program, and more specifically, in C#.

Once the engine part of the project is complete, I will begin work on an actual game. The two go hand-in-hand really.

Like anything else, there will be bugs, and fixes, and more bugs, and more fixes.

The "level maker" that I spoke about building is also a tool I am working on, like many other tools I will need to code to make my life easier, and game content creation easier as well. So yes, a "level maker" is in the works, and it's coming along nicely. When it actually works up to the point where once could create a level, I will post a screen shot or two.

I understand that the screen shots that were posted in many posts before are... not interesting. They are more proof-of-concept images rather than "OMG! W4t a k3wl game!!!1!" images. Those kind of images won't be available for a long time ;)

Does this clear things up?

EDIT:

I'm glad that you're makign progress. I make 32-bit, so Y'know, I can't use this much, at all, a little bit...

The NES-style game I plan to make with this engine is by no means the zenith of my project. If the game works, and is fun, and is decent, it will only fuel my desire to improve and polish this project in to something great.

Maxamor
14-12-06, 19:50
This thread has been quiet for some time, so this is a good time for a little update.

With the release of the next version of the XNA framework, my code will have to be refactored again before it is stable enough to run oth multiple clients.

The overhead of the Framework, and the .NET Framework, and the Direct X 9 runtime weighs heavily on this game. The game itself will only be a fraction of the size of all the runtimes it requires to run.

For now, the developer tools will continue to be developed so I can create game content. However, in the recent weeks I have been working on a C++ version of this game engine using SDL.

SDL is only about 2 or 4 megabytes. Right now, the bare-bones game engine is less than 1 megabyte. The space saving alone is worth the effort. And, as som may argue, the C++ version will be "faster".

When there is more to be shown I will create a proper thread for it. I have a basic story and some of the robot masters roughed out. Also some of the game features have been decided upon. All of that info will be posted when I create a new proper thread for it.

In the mean time, this thread will be silent until I get going on it again, which at this point in time may be quite a while.

The project's not dead, it has just changed direction.