Omnimaga: The Coders Of Tomorrow
Welcome, Guest. Please login or register.
 
Omnimaga: The Coders Of Tomorrow
23 May, 2013, 05:28:24 *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
   home   news downloads projects tutorials misc forums rules new posts irc about Login Register  
+-OmnomIRC

You must Register, be logged in and have at least 40 posts to use this shout-box! If it still doesn't show up afterward, it might be that OmnomIRC is disabled for your group or under maintenance.

Note: You can also use an IRC client like mIRC, X-Chat or Mibbit to connect to an EFnet server and #omnimaga.

Pages: [1] 2 3   Go Down
  Print  
Author Topic: Good game [and program] design -  (Read 2415 times) Bookmark and Share
0 Members and 1 Guest are viewing this topic.
AngelFish
This is my custom title
Administrator
LV12 Extreme Poster (Next: 5000)
*
Offline Offline

Gender: Male
Last Login: Today at 02:00:02
Date Registered: 15 August, 2010, 09:18:54
Posts: 3190


Topic starter
Total Post Ratings: +219

View Profile
« on: 06 March, 2011, 09:22:23 »
+8

Good game and program design is actually a very simple thing, but it has to be done carefully to be successful.

Game design

  • Come up with a good idea that you would want tp play. If you don't want to play your own game, then chances are few other people will either.
  • The least followed rule of game design is to check if your game exists. Get on Google or ticalc.org and look for similar games. If a similar game exists, don't make your own unless it will be substantially different from all previous attempts. Making yet another WFRNG is unnecessary. Porting one to a new device is useful.
  • Plan it out. Too many games require major overhauls because the author realizes halfway through the project that their original idea isn't good enough. This is especially true if you're writing a story based game like an RPG.
  • Be realistic. You're not going to get Modern warfare 2 running on your TI-83+ or Crysis on your Prizm.
  • Speed, speed, speed. Keep your game as fast as is reasonably possible within the constraints of the language, even if it means that you have to delete that fancy HUD that takes a full second to render. There's nothing like 1 frame per minute graphics to make you want to immediately delete a game.
  • Keep it light, within practicality. The vast majority of calc games don't require more than a few kilobytes of memory. Making them into an app just wastes user space and introduces some incompatibilities with older calcs. That said, there are definitely exceptions to this rule, such as when that space is effectively used to enhance a game. For example, Illusiat 13 uses the memory it takes to create an absolutely massive world.
  • Keep the User Interface clean and simple. A crowded UI is confusing and makes games difficult to use.
  • Include documentation. The end users can't read your mind. Give them a simple readme.txt file (written in English!) to answer a few basic questions about the controls, the storyline, the game itself and so on.
  • Use standard keyboard mappings. I can't speak for everyone, but I'm liable to get very annoyed at a program that uses the Clear button as the Enter button or something equally ridiculous. Also, let me repeat myself: include the controls in the documentation, even if they're entirely standard.
  • Debug, debug, debug, debug, debug, and debug again. There is NO reason not to debug if you do not have a deadline. Far too many games fail to debug properly and are thus rendered inoperable by many users.
  • Include all of the necessary files to run your program. This might sound silly, but you'd be surprised how many people forget to include that one subprogram that contains the entire game engine.
  • Keep it widely compatible. Don't write the game so it only works with one version of an obscure, unreleased shell written in 1998.
  • Handle errors effectively. Don't let a text based game crash because the user entered a number rather than a letter.

Program design:

  • All of the rules in the previous list apply here as well. Read them.
  • Don't reinvent OS functions in slower, less accurate ways.
  • If you're writing any sort of quadratic solver, give up, go home, and please don't release it. Your users will be perfectly content picking from among the other 3000 quadratic solvers. Now, Nth degree polynomial solvers that can find complex roots are another matter...
  • Keep the download size small, please. A good rule of thumb is that if your documentation takes up more space than your program, your program is one of three things: Too complex to ever be used effectively, too brilliant for a coder of your caliber to be reading this, or the documentation is too large. Chances are, it's the third option. There's no need for multi-MB documents to explain your 2 KB quadratic solver.
  • Write the documentation in a known language, preferably English. Most of your users will not understand that obscure language spoken in a South American village deep in the Amazon.
  • Don't knock off proprietary commercial software like Windows and port it to your calc in BASIC.
« Last Edit: 08 March, 2011, 23:10:34 by Qwerty.55 » Logged

∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ
DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Online Online

Gender: Male
Last Login: Today at 05:17:39
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50225


Total Post Ratings: +2615

View Profile WWW
« Reply #1 on: 06 March, 2011, 09:51:06 »
+2

Yeah I agree with that. I hated when I downloaded a 60 KB RPG once, only to realize it has 4 rooms.

Also one thing I can't stress enough: Disable the friggin axises! So many games forces me to manually disable them. Or at least, use a GDB or something to re-enable previous settings once exiting the game.

As for documentation, however, I think moderately large readmes can be ok if you want them to look great, like Axe Parser, but yeah, 500 KB max in most cases should be enough. Also, although if you use .doc, include a txt version of your readme too, for people who don't have OpenOffice or Word.

And yeah debugging is important. One thing I want to point out about missing files: Once you finished your game, do one more backup, then delete every variable/list/strings from the calc (that won't come with the game). Then test the game again for dependencies.

To TI-Nspire BASIC programmers: Please include a README with your game. I noticed none of the BASIC games had one. Most people put the readme in the game, but what about people who wants to know what they are gonna install and the controls before playing?

  • If you're writing any sort of quadratic solver, give up, go home, and please don't release it. Your users will be perfectly content picking from among the other 3000 quadratic solvers. Now, Nth degree polynomial solvers that can find complex roots are another matter...
But what if it got grayscale? Big frown
« Last Edit: 06 March, 2011, 09:51:28 by DJ_O » Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
leafy
Coder Of Tomorrow
LV10 31337 u53r (Next: 2000)
*
Offline Offline

Gender: Male
Last Login: Today at 02:05:15
Date Registered: 26 December, 2010, 05:27:03
Location: the ninth circle of hell
Posts: 1545


Total Post Ratings: +371

View Profile WWW
« Reply #2 on: 06 March, 2011, 09:52:16 »
+3

Please. FnOff, then FnOn when you quit the game. (In BASIC)
Logged

In-progress: Blastlabs, TMJO, qb?, VVVVVV?
Finished: Tag, Tap, MFQT, Nyan
Dead: Graviter
Hot_Dog
If you can't find a cat, look for its tail.
Support Staff
LV11 Super Veteran (Next: 3000)
*
Offline Offline

Gender: Male
Last Login: 21 May, 2013, 21:08:05
Date Registered: 28 December, 2009, 18:47:54
Location: Midland, Washington
Posts: 2940


Total Post Ratings: +428

View Profile
« Reply #3 on: 06 March, 2011, 09:57:13 »
+2

* Don't make the user download a required file.  If a game requires Xlib, include Xlib.  If it requires Celtic III, don't make the user download Celtic III.  "Batteries not included" is not a good option.
Logged

There are people who can speak two languages, and they are called bilingual.  There are people who speak three languages and are therefore trilingual.  Then there are people who speak one language, and these people are called Americans.

DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Online Online

Gender: Male
Last Login: Today at 05:17:39
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50225


Total Post Ratings: +2615

View Profile WWW
« Reply #4 on: 06 March, 2011, 10:01:36 »
0

Oh yeah I despise that. It especially sucks when you got no internet at home and are in a hurry to download stuff at school...

Sadly, sometimes it's impossible due to copyrights, though.
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
FinaleTI
Believe in the pony that believes in you!
Coder Of Tomorrow
LV10 31337 u53r (Next: 2000)
*
Offline Offline

Gender: Male
Last Login: 03 May, 2013, 16:35:01
Date Registered: 04 June, 2010, 00:34:27
Location: Alteria
Posts: 1818


Total Post Ratings: +118

View Profile WWW
« Reply #5 on: 06 March, 2011, 17:27:24 »
0

* Don't make the user download a required file.  If a game requires Xlib, include Xlib.  If it requires Celtic III, don't make the user download Celtic III.
This isn't always viable, as Kerm usually doesn't let anyone include DCS in downloads. That said, if you can't include a program, at least provide a direct link, because it makes getting the program so much faster.
Logged





So, yeah, I have a blog now. Nothing special, just your average ghost town.

Spoiler for Projects:
Spoiler for Pokemon TI:
Map engine is going to be redone from scratch, since I was lacking in organization last time. With a project as big as Pokemon, planning and organization is key, so that will probably be the brunt of the work done on this project for the time being.

Spoiler for Nostalgia:
Being worked on. Nothing really new to put here, but it's being worked on.

Spoiler for Finale's Super Insane Tunnel Pack of Doom:
I will be combining Blur and Collision Course into a single gamepack.

Spoiler for Nostalgia Origins: Sky's Story:
Currently on hold. I am unsure of whether this will remain DCS7 Hybrid BASIC or if it will use Batlib, Grammer or perhaps Axe.
This may see more progress once a demo of Nostalgia is released.
DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Online Online

Gender: Male
Last Login: Today at 05:17:39
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50225


Total Post Ratings: +2615

View Profile WWW
« Reply #6 on: 08 March, 2011, 19:40:35 »
0

Yeah that's what I meant. If you can include the file, then do so. Please read the license first, though. With Omnicalc, for example, the entire source must be included. If you can't include the file, then warn in your description at the very beginning that this require an extra file and put the link to it.

Otherwise I hate when I download a software somewhere or even a game, only to be greeted with a "This program could not be ran because something.dll is missing from my computer"
« Last Edit: 08 March, 2011, 19:41:25 by DJ_O » Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
Freyaday
The One And Only Serial Time Killing Catboy-Loli-Ballerino
LV10 31337 u53r (Next: 2000)
**********
Online Online

Gender: Male
Last Login: Today at 05:27:35
Date Registered: 24 February, 2011, 17:10:56
Location: ¿¿¿
Posts: 1889


Total Post Ratings: +110

View Profile WWW
« Reply #7 on: 08 March, 2011, 22:07:37 »
0

What about Axe? I know I am ethically obligated to say "This is an Axe Program" and give all due credit to Quigibo, but do I have to include the Axe App/link to it as well?
Logged

In other news, Frey continues kicking unprecedented levels of ass.
Proud member of LF#N--Lolis For #9678B6 Names


Beware the Bitulator! ,.,./`My Artwork!
Munchor
LV13 Extreme Addict (Next: 9001)
*************
Offline Offline

Gender: Male
Last Login: 21 May, 2013, 17:58:01
Date Registered: 16 October, 2010, 15:39:13
Location: Position
Posts: 6209


Total Post Ratings: +174

View Profile
« Reply #8 on: 08 March, 2011, 22:08:36 »
0

What about Axe? I know I am ethically obligated to say "This is an Axe Program" and give all due credit to Quigibo, but do I have to include the Axe App/link to it as well?

Nah, you don't, it's actually the Assembly program you distribute.

But you can credit him for creating the language, if you want too, but then again, nobody credits Texas for making TI-Basic.
« Last Edit: 08 March, 2011, 22:09:08 by Scout » Logged
Raylin
Godslayer
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: 25 February, 2013, 17:03:58
Date Registered: 01 July, 2009, 22:55:16
Location: In the City of Labyrinth
Posts: 1405


Total Post Ratings: +53

View Profile WWW
« Reply #9 on: 08 March, 2011, 23:07:04 »
0

*Elegantly handle errors.
Logged

Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm








Phantom Sanctuary: Sins of the Savior [==........] 20%
AngelFish
This is my custom title
Administrator
LV12 Extreme Poster (Next: 5000)
*
Offline Offline

Gender: Male
Last Login: Today at 02:00:02
Date Registered: 15 August, 2010, 09:18:54
Posts: 3190


Topic starter
Total Post Ratings: +219

View Profile
« Reply #10 on: 08 March, 2011, 23:10:44 »
0

Edited in.
Logged

∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ
DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Online Online

Gender: Male
Last Login: Today at 05:17:39
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50225


Total Post Ratings: +2615

View Profile WWW
« Reply #11 on: 08 March, 2011, 23:22:37 »
0

What about Axe? I know I am ethically obligated to say "This is an Axe Program" and give all due credit to Quigibo, but do I have to include the Axe App/link to it as well?

Nah, you don't, it's actually the Assembly program you distribute.

But you can credit him for creating the language, if you want too, but then again, nobody credits Texas for making TI-Basic.
If you distribute the source too, make sure to specify which version of Axe was used to compile it, and don't be approximative. Some people say Around Axe 0.4.8, but might work with other versions too. It's best to just link to the right version on Omni forums.
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Online Online

Gender: Male
Last Login: Today at 05:17:39
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50225


Total Post Ratings: +2615

View Profile WWW
« Reply #12 on: 13 March, 2011, 10:36:15 »
0

I noticed that in the past year or so, many calc games have ridiculously high difficulty levels. Games must not be too easy, otherwise it gets boring for a lot of people, but the opposite is also true for a lot of people. I understand that many people here got a lot of inspiration from Donut Quest and love this game, but I think people in general, especially puzzle game fans, are going way too overkill on difficulty. You may be extremly good at solving puzzles and have good dexterity and reflexes to play games that requires extremly precise timing, but it doesn't mean it'S the case for everyone. In fact, you may be singling out many more players than you think, and they might even recommend their school friends against downloading your game if they found it unreasonably hard.

I think games must start somewhat easy (not necessarily super easy, but at least medium difficulty. For 1st levels difficulty, you should base yourself on the level difficulty in Super Mario Bros world 1 through 4 or something like that. Then later, increase the difficulty. If it's a puzzle game it's good that the last few levels are extremly hard too.

To sum up, even though you may be able to beat Kaizo Mario hacks easily, it doesn't mean everyone can. So please try to not take Kaizo difficulty as inspiration for your calc games.

As for RPGs, don't start with extremly hard enemies either. I remember playing Lunar for the Playstation 1 and I died 6 times in the first enemy encounter. Don't make it so you have to fight an enemy, go all the way back to the town to buy potions, then back to the dungeon to fight one enemy, hoping you survive, then go back to the town, repeating the process 30 times to level up. Some people like to grind but too much of it can be boring, so it's good to keep the RPG difficulty curve not too steep and not start it too high. Don't make leveling up too fast either, because I remember somebody spent 8 hours leveling up in Chapter 2 of Illusiat 11 once and managed to reach LV 99 there. He had a 15 MHz calc, though.
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
graphmastur
King Graphmastur
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: 02 February, 2013, 08:34:45
Date Registered: 03 June, 2010, 21:15:55
Posts: 2262


Total Post Ratings: +60

View Profile
« Reply #13 on: 13 March, 2011, 18:29:38 »
0

Crysis on your Prizm.
Is this a hint at something Qwerty...
Otherwise, nice guide indeed.
Logged

DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Online Online

Gender: Male
Last Login: Today at 05:17:39
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50225


Total Post Ratings: +2615

View Profile WWW
« Reply #14 on: 13 March, 2011, 22:04:08 »
0

WHo knows, maybe he'll port Crysis for real one day. shocked
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
Pages: [1] 2 3   Go Up
  Print  
 
Jump to:  

Powered by EzPortal
Powered by MySQL Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Powered by PHP
Page created in 0.301 seconds with 31 queries.
Skin by DJ Omnimaga edited from SMF default theme with the help of tr1p1ea.
All programs, games and songs avaliable on this website are property of their respective owners.
Best viewed in Opera, Firefox, Chrome and Safari with a resolution of 1024x768 or above.