It is currently Sat Dec 16, 2017 6:44 pm

All times are UTC + 9:30 hours




Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Detailed Like Crazy: Menu Screen and Game System Layout
PostPosted: Wed Aug 12, 2009 2:57 pm 
Offline
User avatar

Joined: Fri May 04, 2007 3:18 am
Posts: 520
Introduction

A good program is a lot like a good building. We need the best bricks, the best mortar, and the perfect foundation. But, even these aren’t enough to guarantee that the building will be strong. In order to make sure a structure is strong enough to support more than its weight, we need to be tentative, and pay close attention to every detail. We are the builders; we decide whether our building will last a decade… or become an Architectural masterpiece like the Pyramids of Giza. Let’s begin.

Land Ho!

Java is the base program chosen for this. Why? Like all programming languages, it has its flaws. In Java’s case, it is a tad slower than other languages of the same type. It hates communicating in binary over servers. And its OOP design is clunkier than other languages, “Hello World!” However, this is the glue that binds all the programmers together. Every programmer here understands Java to a certain degree, and therefore it makes it easier for debugging and ideas.

The Foundation

A building is only as strong as the foundation you put it on. Our foundation for this program is Java2D. Java2D has a very easy to use graphics class and is the base for Slick classes.

Humble Beginnings - Mortar

We need a good sticky base to stick our program together with. At first, I thought XML would be good. But it has a lot of overhead and is very clunky to write even with its superior support. As a base, I’m afraid it’ll sap the bandwidth for all its worth and create unnecessarily large save, replay, and map files. So, stripping it down to a much simpler base should do this program a lot of good. (If push comes to kill, we’ll take the condensed form and convert it back to XML.)

{LOCATION: 1, 1}

This is what I’d like to call the (text: data) format. There are many scripts that are similar to this already like DVS and .ini, but this is very close to a json object. The focus of our program is condensing everything to this format, and I mean everything. All data should be able to be read as groups of data that look like the above.

-Game Elements (Units, Terrain, CO’s)
-User Actions (AI, Unit Actions, User Actions)
-GUI (Menus, Pictures, Music)

-------------------------------------------------------------
Here is a slight example of how a terrain would look in that format, in no way is this finalized…

{FILE:awimage/awTerrains.png}{CODE:TERRAIN}{NAME:SEA}{TYPE:PRAXIS}
{WEATHER:CLEAR}{LOCATION:416,42,32,42,1,1}… {END}
------------------------------------------------------------

If all data is written in the same way, it’ll make it easier to transfer information from brick(screen) to brick(sceen) without to much problems. In this case, blocks start with the
“FILE” tag and end with the “END” tag. A common consistency in the mortar makes a sturdy surface for the bricks to lie on.

Strength Lies in Bricks

The bricks are the different screens used to make up a game. What is a screen? The title screen, the menu screen, the game screen are a few examples. Each one makes up the entire infrastructure of the building. Some screens are more important than others; some will receive more wear and tear, while some will barely be touched. But each screen needs to be important to that game’s overall purpose and design. Screens are extremely important, and will be further detailed in a later section.

Expansion Awaits

We have quite a bit of expanding values in this program. Some of the major ones are…
Maps, Tiles, Units, Terrain, Cities/Inventions, Campaigns, Game Modes, Language, and AI

Even within those we have some sub-categories…
Unit/City/Invention Color, Armies, CO Abilities/Powers/Skills, Music, Art, Weather

And there are probably more expanding features that will arise in the future.

The good news is thanks to the mortar of this program, they will all be condensed to the same format. This makes our job as programmers rather simple, just read whatever is given until the building can’t hold anymore. We know if we try to store too much information the system will crash. However, that is one of the problems of having expandable program. Just like if you put too much air in a balloon, it will pop.

Sadly, putting a limit on things destroys the purpose of the game. People need to be able to expand their ideas. For non-server related items; this is one of the few things that’ll be left up to the user. They should manage the amount of content shoved into the game. It doesn’t mean that we shouldn’t make the balloon walls thicker if we can though. This section will also be expanded and detailed.

-------------------------------------------------------------------------------------------
Screens: The Bricks of Life

Screens are the foundation of all game, for all great games are dependent on what you see. This will be a simple chart containing what screens I think the game could use and a slight insight into the purpose and function of the screens.

Main Menu Screens

Title Screen: A simple screen to show the title of the game.
Menu Screen: A screen listing all the major options of the game.
Exit Screen: Allows you to exit within the game without having to Alt-F4.

Main Menu Option Screens

Key Mapping/Configuration: Allows you to change the mapping of the keyboard. This screen might also be extended to the mouse and game controllers.
Sound Test: When applicable, this screen will allow you to test the various sounds in the game. It will also allow you to listen to music within the game as well.
Picture Gallery: This will allow you to browse the different images used within the game.
Credits: A screen to show the many talented creators of the game, and thank all who made this game possible.
Options: Options for changing the cursor, background, volume, language, server, and other small changes.

Game Menu Screens

Map Editor: This screen allows you to create a new map from scratch, or edit a map already made. You can edit the map within the game.
Versus: Various options for creating a new game. You can load a game or create a new game. It’s great for server-less games or 1-on-1 with the AI.
Online: Various options for dealing with the online game of the online community
History: Contains various options for all the expanding options in the game including but not limited to: Units, CO’s, Campaigns, Terrains, Skills and the like will be detailed and explained here.
Campaigns: Options for dealing with the Campaigns within the game.

----------------------------------------------------------------------------------

More to come...


Top
 Profile  
 
 Post subject: Re: Detailed Like Crazy: Menu Screen and Game System Layout
PostPosted: Wed Aug 12, 2009 2:57 pm 
Offline
User avatar

Joined: Fri May 04, 2007 3:18 am
Posts: 520
Reserved 1:


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC + 9:30 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Blue Moon by Trent © 2007
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group