Author Topic: Good game [and program] design  (Read 9146 times)

0 Members and 1 Guest are viewing this topic.

Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Good game [and program] design
« on: March 06, 2011, 02:22:23 am »
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: March 08, 2011, 04:10:34 pm by Qwerty.55 »
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55865
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Good game [and program] design
« Reply #1 on: March 06, 2011, 02:51:06 am »
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? D:
« Last Edit: March 06, 2011, 02:51:28 am by DJ_O »
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline leafy

  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1554
  • Rating: +475/-97
  • Seizon senryakuuuu!
    • View Profile
    • keff.me
Re: Good game [and program] design
« Reply #2 on: March 06, 2011, 02:52:16 am »
Please. FnOff, then FnOn when you quit the game. (In BASIC)
In-progress: Graviter (...)

Offline Hot_Dog

  • If you can't find a cat, look for its tail.
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2966
  • Rating: +445/-10
    • View Profile
Re: Good game [and program] design
« Reply #3 on: March 06, 2011, 02:57:13 am »
* 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.
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.


Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55865
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Good game [and program] design
« Reply #4 on: March 06, 2011, 03:01:36 am »
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.
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline FinaleTI

  • Believe in the pony that believes in you!
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1830
  • Rating: +121/-2
  • Believe in the pony that believes in you!
    • View Profile
    • dmuckerman.tumblr.com
Re: Good game [and program] design
« Reply #5 on: March 06, 2011, 10:27:24 am »
* 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.


Spoiler For Projects:

My projects haven't been worked on in a while, so they're all on hiatus for the time being. I do hope to eventually return to them in some form or another...

Spoiler For Pokemon TI:
Axe port of Pokemon Red/Blue to the 83+/84+ family. On hold.

Spoiler For Nostalgia:
My big personal project, an original RPG about dimensional travel and a few heroes tasked with saving the world.
Coding-wise, on hold, but I am re-working the story.

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

Spoiler For Nostalgia Origins: Sky's Story:
Prequel to Nostalgia. On hold, especially while the story is re-worked.

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55865
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Good game [and program] design
« Reply #6 on: March 08, 2011, 12:40:35 pm »
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: March 08, 2011, 12:41:25 pm by DJ_O »
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline Freyaday

  • The One And Only Serial Time Killing Catboy-Capoeirista-Ballerino
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1970
  • Rating: +128/-15
  • I put on my robe and pixel hat...
    • View Profile
Re: Good game [and program] design
« Reply #7 on: March 08, 2011, 03:07:37 pm »
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?
In other news, Frey continues kicking unprecedented levels of ass.
Proud member of LF#N--Lolis For #9678B6 Names


I'm a performer at heart; I stole it last week.
My Artwork!

Offline Munchor

  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6199
  • Rating: +295/-121
  • Code Recycler
    • View Profile
Re: Good game [and program] design
« Reply #8 on: March 08, 2011, 03:08:36 pm »
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: March 08, 2011, 03:09:08 pm by Scout »

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Good game [and program] design
« Reply #9 on: March 08, 2011, 04:07:04 pm »
*Elegantly handle errors.
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







Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Re: Good game [and program] design
« Reply #10 on: March 08, 2011, 04:10:44 pm »
Edited in.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55865
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Good game [and program] design
« Reply #11 on: March 08, 2011, 04:22:37 pm »
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.
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55865
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Good game [and program] design
« Reply #12 on: March 13, 2011, 04:36:15 am »
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.
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline jnesselr

  • King Graphmastur
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2270
  • Rating: +81/-20
  • TAO == epic
    • View Profile
Re: Good game [and program] design
« Reply #13 on: March 13, 2011, 12:29:38 pm »
Crysis on your Prizm.
Is this a hint at something Qwerty...
Otherwise, nice guide indeed.

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55865
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Good game [and program] design
« Reply #14 on: March 13, 2011, 04:04:08 pm »
WHo knows, maybe he'll port Crysis for real one day. O.O
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify