View Full Version : Multiplexity: Space Adventure

Ñuño Martínez
06-02-2007, 12:29 PM
Ok, I decided to create this log (or blog :wink: ) about my entry in the "2007 PGD Annual 'Multiplexity' Competition". Comments and criticism will be welcomed.

Now I'm working in the Game Design Document and I have a lot of stuff here: the overview, the selected genre categories, features and some UML schemes. I've wrote this document in Spanish but I'll translate part of it before to send it next Friday.

"Space Adventure" is a Adventure/Vehicular Combat/Economic Simulation game.

There are an universe with some planets and space-stations. The player can travel from here to there, buy some items, come back here and sell them to earn some money. Then, he/she can buy a better space-shield, stores, hire markets, etc. That's the Economic Simulation part.

But in the universe there are pirates that would try to thieve money and items. Of course, the player's ship has a defensive weapon to defend itself, and can buy better weapons... Or the player can be an space-pirate! That's the Vehicular Combat part.

The universe is populated with a lot of people. They live on the planets or in the space-stations and have problems. May be the player decides to help these people. Then he/she should talk with the people, visit far places, investigate in libraries, find objects... That's the Adventure part.

"Economic Simulation" and "Vehicular Combat" parts will be very similar than the Elite & Elite+ classic games. But the "Adventure" will be different. When the player lands in a planet or in a space-station, the screen changes in to a 2D interface, similar than SCUMM: A shoot of the place, with objects, doors, characters, etc., and a list of actions and the objects the player has. Then, the player can talk with the characters, in a similar way than the SCUMM games, take objects, use the objects or move to another room/place.

The Adventure will be defined by a script, so it will be possible to add new "missions" to the game. Also the ships' characteristics and alien's AI will be very configurable.

That's all at the moment. Now I'll draw some UML schemes...

06-02-2007, 02:39 PM
Very cool idea. I hope to see this one fleshed out. :)

Don't forget to submit your entries through the competition system!

06-02-2007, 06:00 PM
"Space Adventure" is a Adventure/Vehicular Combat/Economic Simulation game.

Wow that will be a lot of work... :shock:
I hope you'll have time to implement all of these things.

You'll get extra points for mixing >2 game genres. isn't it? :P

Good luck with this project. ;)

07-02-2007, 08:20 AM
indeed sounds like a lot of work. My entry would also be a lot of work... Good luck!!

Ñuño Martínez
07-02-2007, 03:35 PM
First, thanks for the comments and good luck for you all too. :)

Today I'm happy because yesterday I find a solution for the collision problem. I always have problems with this issue and I have a lot of unfinished projects because I can't handle collisions correctly. I find the answer after read this article (http://www.devmaster.net/articles/oo-game-design/) about how to write OOP games from the Library section of PGD (http://www.pascalgamedevelopment.com/library.php). I'll explain it a bit.

I have two containers to store "logical objects". One contains the space-ships and manages all it's logic and the other contains the planets and the space-stations to manage market evolution, government, etc. I use two different containers because the space-ships' logic should be updated every frame but the planets' logic needs one update each second or less.

I have also a container for "physical objects". This one manages the physics of the universe, including collisions. The physical objects describes the physical values (as size, weight, speed vector...) for ships, planets, stations and also for objects without logic as laser beams, asteroids and such.

Finally I have a third container for "visual objects". It contains the visual description for all objects in the universe, including "non-physical objects" as the background skybox and other cosmetic objects.

For example, a space-ship is stored in the space-ship logic container and has a reference to its physical representation in the physical objects container to check (for example) its collision state and change its speed vector. The physical representation of the space-ship has a reference to its visual representation in the visual objects container to get and modify the position and orientation.

I was also thinking how to deal with the transition between interplanetary flight and atmospheric flight. I wanted to allow star-ships to land directly on the planets, but as you said this would be a lot of work, so I decided to put it in the future feature list. Now I'll use the same approaching as Elite does: dock to a space-station orbiting the planet.

About the 2D part, a scene will be a container of objects. There are a similar container with the objects owned by the player. These objects will use a script engine to handle actions. For example, a "key" would contain a script to handle the action "use", this script will check if there's a "lock" in the scene to activate it. For example:

SUB ActionUse
DIM Lock
Lock = Search_Object ("Lock")
IF Lock <> 0 THEN
CALL SendMessage &#40;Lock, "unlock"&#41;
CALL MessageBox &#40;"Can't find a lock here..."&#41;
It's quite simple, isn't it?

I should use command console inside the game too to test configurations, scripts, etc.

I'm excited because I never used scripts or consoles in my games before. I wrote a script engine and a console few years ago, but never used them in a real live project.

That's all today. Again, thanks for the comments.

Ñuño Martínez
09-02-2007, 08:18 AM
I've submitted the design document. I think I should write some flowcharts and UML more, specially about the "octree" thing, but the basic structure is there.

Unfortunately I will not have too much time to work in this project next weeks so I don't know if I'll complete next stage. :(

Ñuño Martínez
22-02-2007, 10:21 AM
I'm out of business and I'll be out until March 15th or later :( . That means I won't finish stages 2 and 3 in time, even stage 4 won't be finished. I knew that I can't complete the game for te conquest but I thought I could finish a nice demo. But actually that's impossible.

So I decided to cut off the goals and submit a simple prototype that I'll complete after the conquest. Most limitations will be technical: The graphics engine will not use octrees nor fulstrum culling. Instead it'll use a sort of "3D tilemap" and render the "tiles" nearest to the player space-ship. Later I'll use the "tile" struct as base to build the octree. No textures, no realtime lighting, no particles... Graphics will be ugly but I have no time (If somebody wants to contribute with models and textures, it will be welcome). I have no time to learn a new script engine/language so I'll use an old VM I wrote few years ago. It's very limited but I think it's enough for my actual needs. No planet logic. All theirs values will be static. Only one 'adventure' will be implemented: the Tutorial (yet written). I think it's enough to show how to use the script engine to write stories.I think this simplifies the project a lot. I hope I can complete the prototype before June 3rd...

22-02-2007, 10:34 AM

Sorry to read that! I hope you get as much done as you like... and hopefully you will finally finish the project when there is time. Sounds like a good one...

Anyway, good luck to all other things which prevent you from finishing this one.

22-02-2007, 03:26 PM
Hey ?ëu?±o. Time is a deadly demon, indeed. :?

Well do/submit what you can. At least you can show that there is interest by creating something partially done rather than nothing.

See last year's 'The Big Boss' details page (http://www.pascalgamedevelopment.com/competitions.php?p=details&c=1) to see what I mean...

More title/screenshots we can show at competition's end, the bigger an impact it makes in recognition and reputation of our community. :)

Ñuño Martínez
02-04-2007, 03:40 PM
Now, I'm officially out. Real life kicked me and I can't get full access to my computer until May, may be June.

Anyway the idea is great, so I think I'll work with it when I have my computer ready.

Sorry. :cry:

[p.s.] I didn't do nothing since my last upload.