• Welcome to Randomland - The Forum. Please login or sign up.
 
May 03, 2024, 12:18 AM

News:

Get Out, See Green!


XNA Project - MSSE

Started by Brad, Apr 26, 2012, 10:25 PM

Previous topic - Next topic

Brad

Alright, now that I've got a working prototype I feel like sharing what I've been working on.

I've been creating  a Side Scroller game engine in C# using XNA, I've been calling it the Mediocre Side Scroller Engine. Basically it's a side scrolling platformer game which allows drop-in custom characters, enemies and levels.

The idea was to take unique game mechanics from a bunch of different games, program generic versions of the in the game engine and allow you to recreate the way a specific character from another game plays just by changing variables in a character file.

I'll start with just the basics and then add more and more different game mechanics allowing me to properly emulate many different characters. An example of the different type of actions I'm taking about: ranged & melee attacks, double-jumps, running, crouch movement, charge attacks, carrying and throwing objects...

So far I've got basic movement, jumping, gravity, and player vs tile collision detection completed. The scrolling camera works... but is still pretty annoying.

I've set up three different characters so far: Mario, MegaMan X, and Commander Keen. All of differing sizes and number of animations.

The source code is stored in a private Mercurial repository on Bitbucket. This also gives me a bunch of other tools like a bug tracker and wiki. If you'd like I'll send you an invite to get access to the source code.

I was going to upload an actual video of the "gameplay" but I didn't so you just get screenshots, sorry.

Eventually, I am going to need some assistance setting up some characters to try and match up their game mechanics to act like they do in their source games. No programming experience required, just have to edit some numbers in a config file and be willing to play old games to get a good gameplay match.

Nick

That is pretty cool. What is your goal for game-play to be like?

Brad

The goal is to reproduce mechanics from a bunch of different games so that you can choose a character (in a character select screen like a fighting game) and have the gameplay be very different. A character like Samus (from Metroid) would play very different from Simon Belmount (from Castlevania). Samus can crouch roll, drop bombs, shoot and double jump. Simon Belmount has a whip attack, and can throw axes, but cannot change direction while jumping. And neither of these characters can jump on enemies heads or pick up objects like Mario can. Playing different characters would result in a hugely different experience.

I'm always trying to figure out how I can program some game mechanic and once I figure it out I never get around to finishing the game. With this the whole point is figuring out a bunch of different game mechanics and making them generic enough that a short and easy to write config file will give you vastly different results.

The game is designed is such a way that local multiplayer is possible (although it won't be one of the first features implemented). So you could play through a level with two characters with totally different game mechanics.

Some characters will make the game harder than others (e.g. Simon Belmount) but the main goal is variety. Doing this without a huge amount of code is the challenge. :)

I'm also trying to make it easy enough to add in your own custom characters. It should be easy enough that somebody with no programming experience could create their own character. In fact... if I run into any copyright issues do to featuring characters from other games (and using their sprite assets) I'll separate those characters from the game source and only distribute the game with custom characters. Making the "borrowed" characters available as a separate download.

Unfortunately this is going to be a PC-only game, as the Xbox does not allow user generated content.



Cody

I don't have any programming experience, but I do know how to edit config files. I would try and help if I could. This project sounds interesting.
"Stop whining. Before you really get me irritated."
   --Boba Fett

Brad

I sent you guys invitations to bitbucket which should give you write access to the repository.

I'll try and post a working binary for everybody who doesn't care enough to compile from source (which I assume is everyone).

zourtney

May 04, 2012, 07:55 AM #5 Last Edit: May 04, 2012, 07:58 AM by zourtney
Yep, I created an account last night. I didn't get a chance to actually look at the code though. (All work and no play makes Jack a full boy, and all)

Update: yay, I can actually view the images on a proper computer! I like it. Is it sad that the most interesting thing to me is the config file? Maybe I'll get a chance to check out the binary this weekend.

Brad

Is there anyway we can get image attachments to work on the mobile version of the site?

zourtney

What if you add links instead of adding them as attachments? The attachments don't seem to work right in my forum-viewer app

Brad

Actually got a little time and did a little work on this. Fixed the camera stuttering issue. Still a couple of collision detection bugs to work out. A few weird edge cases and a situation where when next to a wall it doesn't treat you like you are in the air until you are above the adjacent wall. This inadvertently lets you fly up a wall.... not actually intended.

Also, I added off screen death. Fall down a pit and you'll "die". Death currently means your character is warped back to the starting spawn point.

I've been trying to make my commit messages meaningful, so if you are interested in the progress check the bitbucket repo page. I'm planning on only posting here when I complete something significant or if something really funny/stupid happens.

Nick


Brad

If anybody tries to compile the source code right now, be warned that you will not actually be able to get to the "game" as I'm currently working on the character select screen and haven't finished the part where it transitions into the play screen. You can change this by commenting/uncommenting the add page lines in the MediocreSideScroller class. We talked a bit about this earlier today Nick so I just wanted to give you a heads up.

Brad

The character selection screen works now. So if you felt like it you could add an additional character to the game engine without writing any code.

Also I added variable height jumping, so now when you release the jump button your jump will be cut short. So a tap of the jump button produces a shorter jump than holding it down. This affects all characters regardless of whether their original game had variable jumping or not.

Brad

Having a serious debate with myself whether I should continue writing "simple" map editors for my games or whether I should just implement loading of somebody else's map format. Probably using a freeware editor like http://www.mapeditor.org/?m=0.

Map editors are a bunch of work and aren't really that fun to make. And I guess courtney is to busy with something or other to make one for me, haha.

zourtney

Nice. Yeah, implement someone else's format. Looks like that could be a good tool...Unless you like spending hours reinventing wheels and parsing homebrew file formats. Maybe I'm just getting lazy. But I say save your energy for debugging your project, instead of your project's side-project :)

Brad

I've now implemented the TMX format created by the Tiled Map Editor (available at www.mapeditor.org).

I choose to go the route where you use a specific tile layer for collision and just paint over the top of the tiles specifying the type of collision (solid, jump-through, water, etc...)

Found a couple of bugs with jump-through tiles as well... need to update my collision detection.

Anyway, check out the map editing screenshots... I'll try to get a binary posted soon for the non-compiling peoples if there is any interest.