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

0 Members and 1 Guest are viewing this topic.

Offline alberthrocks

  • Moderator
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 876
  • Rating: +103/-10
    • View Profile
Re: Good game [and program] design
« Reply #15 on: March 13, 2011, 05:51:36 pm »
Speaking of good design, I'd like to suggest a few things:

* For selecting, use BOTH 2nd and Enter. That way, you don't have any crazy confusion.
* For info screens (like "High score!", etc.) 2nd, Enter, AND Clear. I've ran into games that would seem to use 2nd to continue on, but I end up having to press some other weird button to continue on, almost thinking that I've crashed! :P The same applies to the above suggestion.
* AxesOff and AxesOn is a must, as well as FnOff. For the first part, not everyone turns off their graph axes, nor should you assume that they know how. DO IT! :D For FnOff, no one wants to see a graph of y=x^2 unless you are making a quad solver (in which there are thousands, mind you :P). As for FnOn... beware that it *might* cause a graph to be drawn (if there is one). I'm not too nimble on preventing that, so you're on your own. (You can try my code below though to see if my guessing works!)

For those BASIC programmers out there, here's what I do every time:
Code: [Select]
ClrHome
FnOff
AxesOff
ClrDraw
"You're done! Have fun coding! :)
"(code goes here)
"OK, time to give the user their graph back!
ClrDraw
AxesOn
ClrHome
FnOn
ClrHome
For FnOn, beware that FnOn turns all of the functions on. You may wish to add "1" to the end of FnOn.
The code snipplet above is designed to (hopefully) prevent the user from seeing the graph, and therefore hiding the fact that you're using that place to draw. ;)

As for Axe programmers - although this doesn't apply to you, I've seen some programs that have forgotten to ClrHome and ClrDraw! Unless you do an interesting homescreen transition (I have done and loved that a LOT, but most of the time if it isn't needed, don't do it), you should ClrHome. Finally, ClrDraw might be "corrupted" - some other program may have made a mess in there, or like some shells, leave the screen in the buffer. Erase it! ClrDraw^r is also a must if you use the backbuffer as well.
* Mental tip: never assume that the user will be like you, nor will they be as smart as you! :) All of the above stuff basically follows this rule! :) If you are deviating from the standard keyset, etc., include help inside the game. Give really simple directions, keymaps like "2nd to jump!" and "Clear to exit!". This will ensure wide acceptance and enjoyability of your game! :D
* Mental tip #2: never assume your environment is the same as your target user's environment! This pretty much encompasses everything above, but I thought to mention it if you already haven't realized it.

If there's anything that I've gotten wrong, feel free to correct me. I haven't done any serious BASIC game dev in quite a while... :P (Especially those involving the graph screen!)
I think this topic should be stickied; it would be very useful to new and existing BASIC/Axe devs. :)
« Last Edit: March 13, 2011, 06:00:57 pm by alberthrocks »
Withgusto Networks Founder and Administrator
Main Server Status: http://withg.org/status/
Backup Server Status: Not available
Backup 2/MC Server Status: http://mc.withg.org/status/


Proud member of ClrHome!

Miss my old signature? Here it is!
Spoiler For Signature:
Alternate "New" IRC post notification bot (Newy) down? Go here to reset it! http://withg.org/albert/cpuhero/

Withgusto Networks Founder and Administrator
Main Server Status: http://withg.org/status/
Backup Server Status: Not available
Backup 2/MC Server Status: http://mc.withg.org/status/

Activity remains limited due to busyness from school et al. Sorry! :( Feel free to PM, email, or if you know me well enough, FB me if you have a question/concern. :)

Don't expect me to be online 24/7 until summer. Contact me via FB if you feel it's urgent.


Proud member of ClrHome!

Spoiler For "My Projects! :D":
Projects:

Computer/Web/IRC Projects:
C______c: 0% done (Doing planning and trying to not forget it :P)
A_____m: 40% done (Need to develop a sophisticated process queue, and a pretty web GUI)
AtomBot v3.0: 0% done (Planning stage, may do a litmus test of developer wants in the future)
IdeaFrenzy: 0% done (Planning and trying to not forget it :P)
wxWabbitemu: 40% done (NEED MOAR FEATURES :P)

Calculator Projects:
M__ C_____ (an A____ _____ clone): 0% done (Need to figure out physics and Axe)
C2I: 0% done (planning, checking the demand for it, and dreaming :P)

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 #16 on: March 13, 2011, 06:37:33 pm »
WHo knows, maybe he'll port Crysis for real one day. O.O

Better :P
∂²Ψ    -(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 #17 on: March 13, 2011, 06:41:19 pm »
About using both 2nd and ENTER the problem is that sometimes the programmer might be running extremly low in the 8 KB code limit (where every byte matters) and in BASIC speed. Every 0.05 seconds lost on an extra instruction/check/command can matter in long terms.
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 #18 on: March 14, 2011, 02:56:07 pm »
Along the lines of users with different environments, also :GridOff. You never know.
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 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 #19 on: March 14, 2011, 02:58:00 pm »
Yeah true. Personally, if possible, I think it's best, before the game starts, to store the graph settings, then apply appropriate game changes, then once exiting, recall the old settings. The issue with AxeOn is that someone might already have Axe turned OFF so if they're turned ON everytime he quits the game he might be annoyed as much.
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 #20 on: March 14, 2011, 03:07:37 pm »
Another thing is to Delvar all the vars generated by the program. I got so freaked out about the mess my cubic solver left behind I wrote a program that Delvars just about all the user vars as cleanup
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 aeTIos

  • Nonbinary computing specialist
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3913
  • Rating: +184/-32
    • View Profile
    • wank.party
Re: Good game [and program] design
« Reply #21 on: March 22, 2011, 02:33:42 pm »
One suggestion more, if you use the graph vars: StoreGDB0 (the last, is least used) and afterward RecallGDB0
I'm not a nerd but I pretend:

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 #22 on: March 22, 2011, 07:34:02 pm »
Yeah that's the best solution when in need to turn axises off. Else people get annoyed that their settings are changed. X.x

I tend to not do the delvar thing if I'm running out of RAM, 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 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 #23 on: March 22, 2011, 09:46:05 pm »
Wait, I thought Delvar frees up memory. Am I missing something here? Also, for anyone who doesn't know, thanks to a bug in TI-BASIC itself, the following is actually legal code.
Code: [Select]
:DelVar ADelVar BDelvar C
This can be continued ad infinitum until you run out of memory, a very useful misbug that shaves a net byte off the two byte Delvar. Please note that you're not actually truncating DelVar, but the ommission of a newline/: saves an otherwise inevitable byte.
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 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 #24 on: March 22, 2011, 10:26:08 pm »
I mean during game execution. Sometimes you can't afford taking an extra 30-40 bytes string of Delvars at your program exit. X.x
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 #25 on: March 22, 2011, 11:30:12 pm »
Oh. But that's why I keep all my DelVars in their own program.
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 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 #26 on: March 22, 2011, 11:59:34 pm »
I'm not sure what is the difference. ???
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 #27 on: March 23, 2011, 12:26:47 am »
That way, instead of chewing up my memory 50 times by putting a whole bunch of DelVars at the end of each program, I only chew up my memory once by putting them all in one program and having the other programs call it when they end. I also use it at the beginning of each program to set all the vars to 0.
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 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 #28 on: March 23, 2011, 12:46:51 am »
Well I just put them in one program or at the exit myself.
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 z80man

  • Casio Traitor
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Re: Good game [and program] design
« Reply #29 on: March 23, 2011, 02:34:39 am »
The problem with having BASIC programs in multiple files is that if a user accidentally deletes one of the supporting files then the program stops working. It is even worse when BASIC progs require you to download pic variables because those are so easily corrupted by other programs.

List of stuff I need to do before September:
1. Finish the Emulator of the Casio Prizm (in active development)
2. Finish the the SH3 asm IDE/assembler/linker program (in active development)
3. Create a partial Java virtual machine  for the Prizm (not started)
4. Create Axe for the Prizm with an Axe legacy mode (in planning phase)
5. Develop a large set of C and asm libraries for the Prizm (some progress)
6. Create an emulator of the 83+ for the Prizm (not started)
7. Create a well polished game that showcases the ability of the Casio Prizm (not started)