Jump to content
  • Advertisement
Sign in to follow this  
  • entries
    8
  • comments
    23
  • views
    2551

About this blog

Hobbyist pretending to write game code

Entries in this blog

 

Another change of direction

Hi all! In case anybody reads this thing, sorry not to have updated it for so long. As I am easily distracted by random things, I got myself one of those "open" handheld gaming/media devices called the "gp2x" and have been having a lot of fun writing code for it.

I released a game called "Vektar" -- an arcade-style abstract 2D shooter, which has been reasonably well received, and will probably continue playing around with the gp2x for a while, since I'm having fun doing it.

dzz

dzz

 

Efficient enough

Switching to storing vertices apart from triangles, and a few other tweaks, has made the engine efficient enough for now. It isn't blazing fast but I only need it to be fast enough to not be annoying.

Here's a test that looks slightly more planet-like, but there's still a long way to go obviously!


dzz

dzz

 

A rounder cube

To make the cube begin to appear more planet-like, I implemented a simple ROAM-type surface subdivision scheme, so it adapts the number of triangles as I zoom in and out.





Even though I'm not really concerned with efficiency, the implementation is pretty bloated (stores three vertices per triangle) so I think I'll take a little bit of time to improve the memory use and CPU time somewhat, mostly by moving to a vertex list.



dzz

dzz

 

New stuff

Well, that didn't last too long. I lost interest in the "make a whole simple game" project. But I did get inspired by Ysaneya's amazing journal, so I decided instead to pretend that I'm working on a big space game with aliens and spaceships and planets and so on.

Since there's no hope that I'd actually release anything within five years or more, I don't think I'll spend too much time worrying about frame rates or memory optimization or whatever -- who knows what graphics hardware will be like five years from now?

I imagine nothing will come of it, but making planets looks like too much fun, though Ysaneya's incredible work will be hard to follow. So anyway I got a book on OpenGL and coded up a first little test. It doesn't look much like a planet yet!


dzz

dzz

 

Revised Screen List

Ok, here's a new screen list. With this setup, the obvious default path gets right to playing a level by clicking on "Play" from the first screen.



1. INTRO
Music and animation of some kind to hold a user's interest
- probably the "intro" music should extend over all the non-game screens
This screen includes some sort of description of the basics of gameplay.
Probably the animation on the page should lead the player's attention to
that information. The idea is to give them enough info to start playing.
One corner left free to put junk in (like the distributor's logo or whatever)
"Loading" progress bar while resources are fetched and precomputation done
After loading is complete, the following choices appear:
"Options" (goes to OPTIONS)
"Quit" (goes to QUIT)
"Player Name" (goes to PLAYER NAME)
"High Scores" (goes to HIGH SCORES)
"Play"
The Play button is prominent to encourage its selection
The first time through, play goes right to LEVEL INTRODUCTION for
an introductory level which is just difficult enough to get the
player used to the mechanics and may include some tutorial info
if needed.
Subsequent launches go to GAME SELECTION

2. OPTIONS
This presents gameplay options:
Full screen vs windowed
Sound and music volume
More if needed, depending on game mechanics
"OK"
"Cancel"
Returns to the previous screen

3. QUIT
Simple screen asking for confirmation. If a game is in progress, the
text should include something like "You can resume this game next time
if you wish"
"Quit"
"Don't Quit"
Exits program or returns to previous screen. If a game is in progress
it gets saved with the player name (or 'default' if there
is no player name set)

4. HIGH SCORES
Display of the high score list. Personally I couldn't care less about
what scores I get on games, but some people are into it.
"OK"
Goes to previous screen

5. GAME SELECTION
After the first run through the game, this appears to give various
options.
"Difficulty"
Choose between game difficulty levels (radio button type deal)
"New Game"
Starts a new game with the chosen difficulty level
"Untimed Play"
Starts a free-form version of the game at the chosed difficulty level
This just gives random levels and does not save anything on quit
"Continue Saved Game"
This only appears if there is a saved game. It should be the most
prominent option if available.
"Cancel" (goes to INTRO)
All other choices go to LEVEL INTRODUCTION

6. PLAYER NAME
Prompts the user to enter a player name
Text entry box (pre-populated if a recent user name exists)
Could get fancy and have a dropdown of all user names, but
that probably isn't necessary
Button for "OK"
Returns to previous screen

7. METASTORY INTRODUCTION
The "metastory" is the thing that shows progress through the game
toward the point where it is "over" (all levels have been played).
This screen explains the metastory.
"OK"
"Don't Show Me This Again"
Both go to METASTORY PROGRESS

8. METASTORY PROGRESS
This shows the current state of the metastory, and includes animations
or actions related to progress in the metastory. User might have to
make some sort of selection, they might be able to examine things in
some detail, or there could even be a separate mini-game associated
with the metastory.
At least the following options:
"Play" (goes to LEVEL SELECTION)
"Quit" (goes to QUIT)
Unless the game is over, in which case this leads to GAME OVER WIN

9. LEVEL SELECTION
This is optional. For some types of games it might make sense
to let the user choose a level - a particular quest they want to go on,
a particular prize they want to go after, a particular maze they
want to solve, etc. Maybe a "stage" is comprised of several levels
and it doesn't matter which order they are done in, so the user can
be given control over what they want to do.
Goes to LEVEL INTRODUCTION

10. LEVEL INTRODUCTION
Level-specific loading and computation, shows the level name and
might show other stuff as well. This could be integrated into GAMEPLAY
especially if there isn't much to introduce or if the loading time
is very short.
"Go" goes to GAMEPLAY

11. GAMEPLAY
Starts with a brief animation saying "Go!", and lets the user
play the game.
Available commands:
"Pause" (goes to GAME PAUSED)
"Options" (goes to OPTIONS)
"Hint" (performs some specific gameplay highlighting)
"Quit" (goes to QUIT) - each user only has one saved game, so
there's no need to ask about saving
If the level is completed, goes to LEVEL COMPLETE
If the player loses, goes to GAME OVER LOSS

12. GAME PAUSED
"Continue" (goes back to GAMEPLAY)
"Quit" (goes to QUIT)

13. GAMEPLAY HINT
When new gameplay elements are introduced, in some cases at least it
is probably a good idea to explain them. This type of screen should
definitely be an overlay over the gameplay screen with a visual indication
of what is being discussed
"OK"
"Don't Show This Again"
Both return to GAMEPLAY

14. LEVEL COMPLETE
Some sort of animation and score summary to congratulate the user.
"OK"
Goes to METASTORY INTRODUCTION or METASTORY PROGRESS

15. GAME OVER LOSS
Should contain their score and game stats.
"Save Score"
If there is no user name, first goes to PLAYER NAME
Goes to HIGH SCORES with current score highlighted
"High Scores" (goes to HIGH SCORES)
"Quit" (goes to QUIT)

16. GAME OVER WIN
Starts with some sort of celebratory message.
Should contain their score and game stats.
"Save Score"
If there is no user name, first goes to PLAYER NAME
Goes to HIGH SCORES with current score highlighted
"High Scores" (goes to HIGH SCORES)
"Quit" (goes to QUIT)

dzz

dzz

 

Game Screens

So I thought I'd plan out the various screens that the game should have -- only now do I realize what a truly massive undertaking even a small "complete" game is!

Many games have the same sort of flow, so maybe this analysis will be useful to somebody else.

Some of these "screens" might actually be dialogs that pop over the previous screen, but they are encapsulated functionality with a large UI so it still makes sense to think of them separately. Other sequenes of events are possible and the design needs to be thought through a little more.

Note: the rest of this entry has been superceded by the following entry, after making some changes in response to a helpful comment

dzz

dzz

 

Fun with spheres

So I have more or less picked some mechanics for my little puzzle game, and it involves moving balls around (impressive, eh?). Even such a trivial thing has its interesting points though.... I'll have to render a lot of different styles of spheres from arbitrary orientations, and I'd like them to look reasonably nice.

Time to crack out the algebra.

The first picture is just a rendered heightfield to show that my sphere intersections were working. The second one adds some phong shading, and the third one gets a little fancier.





Beyond that I started playing with some classic Perlin-style effects:





Eventually the idea is to streamline this so I can bash out renders of the balls very quickly. Next steps: work on that rendering including oversampling for anti-aliasing, and figure out a way to map textures onto spheres without distorting them (that's a head-scratcher for right now).

Beyond that, I downloaded the trial of Photoshop and I played with it a bit. I think I'll probably have to buy it, which is fairly painful, but learing photoshop is probably good for me anyway.




dzz

dzz

 

Brief Introduction

So after years of liking games, I decided to try and make games (like everybody else!).

The whole process is interesting to me so I'm going to start by tring to make a "complete" but small game, probably a puzzle game of some kind, just to get experience (though I'll try to make it fun to play).

Mostly just research so far; I decided to use the PopCap framework to handle some of the tedious details robustly, so I'm studying that. Also for some reason I'm curious about making the colorful fonts that make good games look so nice.

And trying to figure out the best way to make game music.

Fun stuff! I'm just a hobbyist so if anybody happens to read this, don't expect too much. I just wanted to make a journal to help with motivation and on the off chance that somebody else finds it interesting.

dzz

dzz

Sign in to follow this  
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!