Project: Metroid

Started by GuyPerfect, September 07, 2009, 08:12:22 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

GuyPerfect

http://www.lemmingsforums.com/index.php?topic=81.msg4521#msg4521" class="bbc_link" target="_blank">Per request, I bring news of the in-progress Metriod project I started!

The idea was conceived originally after the release of http://en.wikipedia.org/wiki/Metroid_Prime_Hunters" class="bbc_link" target="_blank">Metroid Prime Hunters while I was playing a majoratively-unrelated game called http://soldat.pl/en/" class="bbc_link" target="_blank">Soldat. Soldat is an interesting production, because it's a side-scrolling multiplayer shooter, which isn't something you see much of anywhere. Soldiers fly around with jet boots shooting each other in a 2D environment and the hectic online interactions make it the perfect tool for wasting time.

One day while playing the game, I was picking my weapon and something triggered the thought of Metroid Prime Hunters's multiplayer mode where you... well, you can pick your weapon. This resulted in a constant stream of thoughts that incorporated Metroid elements into the Soldat gameplay and eventually I became inspired enough to make it a reality.

Now, try as I may, I can't seem to avoid having a life, and it keeps weaseling its way into my priority list. Curses! So development of the project has been limited, but its current progress is definitely promising. I decided it would be an opportunity to try my hand at both the technical and presentation sides of the video game coin, where I pull off all manner of programming tricks to accomplish some stylish feats as well as make a stylish game as a whole.

During production, I invented a concept that I'll probably stick with for the rest of my life: a sort of "seal" representing quality for the program code. When I write a function to do something, I make sure it's as simple as possible (since that makes an efficient program), and that it works correctly regardless of what parameters it receives. The end result is a highly-optimized function that performs flawlessly... and, as such, I have enough confidence in it that I venture to label it bug-free. Most people consider it folly to say that a program is bug-free, but I'm so totally gonna go there. I will not release a product unless every last function in it receives this "optimized and bug-free" seal, and should a bug ever be found, it will be recorded in a permanent register accessible by the public. Hopefully, I'll never have to start that register. (-:

The Metroid project takes the side-scrolling gameplay of Soldat and uses Metroid elements to define the experience. The terrain is composed of simple line segments that the characters and projectiles interact with. Pointing the mouse cursor anywhere on the screen becomes the location of the target, and firing a gravity-free projectile will fly straight through the cursor; such is how the aiming works. There will be various characters to choose from, and various pick-ups and terrain types to make life more interesting.

Expanding on the Metroid idea, the game maps will consist of multiple rooms to create VERY large areas, just like the Metroid games in general. In fact, the game is being designed as a general-purpose Metroid engine that could be used to produce custom single-player (or co-op) campaigns as well as competitive multiplayer situations.

One of the goals for the project is that it'd work for Microsoft Windows as well as any distribution of Linux running the X Window System, so the foundation of the project was a cross-platform API that creates UI windows and binds an http://www.opengl.org/" class="bbc_link" target="_blank">OpenGL context to it. The API will also be responsible for enabling the POSIX-compliant IP networking API and whatever is needed to send audio buffers to the speakers for sound output. This API's been in the works for a few years, and its current state is one I'm comfortable with and it's being used in the Metroid project. The API will be maintained seperately from the projects based on it, and when it's completed I'll have a ready source of cross-platforming that will let me get my software running on multiple systems with minimal preparation.

Though I have a good understanding of the things that need to be taken care of to produce a game of this sort, all the nitty-gritty details and considerations of actually implementing it in programming aren't something that comes so readily, so I'm always thinking and experimenting with the best way to do things. The physics system is one of the major aspects of the program, and I'm still tinkering with different ways to make it work well and suit my needs. Once I get it situated the way I like it, a major chunk of the programming will be done and I can get to work on more interesting gameplay aspects.

The latest build of the progress is attached to this build (be sure to check readme.txt). But, again, due to life, it hasn't been worked on since July 4. But I'm looking into getting back to work on it!

And a picture:
http://www.perfectkiosk.net/Metroid/Boxyland.png" alt="" class="bbc_img" />

Minim

What's the pic all about? (Sorry, I'm not interested but I'm just curious)
Level Solving Contest creator. Anybody bored and looking for a different challenge? Try these levels!

Neolemmix: #1 #4 #5 #6
Lix: #2  #7
Both Engines: #3

GuyPerfect

The black rectangle is affected by gravity and is controlled by the user. Eventually, there will be a character model there instead. It's just a simple demonstration of making a rectangle interact with line segments for player-map interaction.

Dullstar

I may decide to finish some of my older projects now for some reason...

Of course, then I'd owe it to myself to ACTUALLY CODE THEM instead of use those silly programs for easy game development.  I can't wait till it's done, I'd love to play it.