Omnimaga

Calculator Community => Other Calculators => Topic started by: Raylin on December 03, 2010, 06:49:54 pm

Title: Professionalism in calculator games
Post by: Raylin on December 03, 2010, 06:49:54 pm
How professional can one make a calculator game? Discuss.
Title: Re: Professionalism in calculator games
Post by: Munchor on December 03, 2010, 07:04:20 pm
How professional can one make a calculator game? Discuss.

PDF Read Me's, teams instead of one person developping maybe
Title: Re: Professionalism in calculator games
Post by: jnesselr on December 03, 2010, 07:05:53 pm
I don't know if teams is more professional.  And sometimes, a good old .txt can be just as professional as a .txt document.

I would say good format and design. You need to design a game for use, not "oh, it works finally."
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 03, 2010, 07:06:40 pm
IMHO:

1) No default TI-OS menus, input routine and other type of GUI. Even more professional: custom fonts, but that's not that necessary.

2) Good spelling and grammar. If memory and screen sizes permits it, good punctuation too. That said, very few console RPGs got perfect grammar, because of translation mistakes.

3) No errors such as memory leaks and bug-freeness.

4) If going for a game with tilemaps, make sure your maps are not too simple. Example: avoid doing them like FFTOM1 dungeons where walls were only lines surrounding the screen.

5) Hide the run indicator if making an ASM, Axe or lib-enhanced game.

6) Make sure the install process is not a nightmare. Multiple files/large size is fine, but the best install process is having an archive and RAM folder and telling the player to send those files to the respective memory areas. Don't do the mistake I did with ROL series and avoid using hacked pic variables if possible, except for temporary storage.

7) An actual readme file. PDF makes it look more professional, but is not necessary.

That's all I can think of for now. Note that certain of those might not apply for TI-BASIC.
Title: Re: Professionalism in calculator games
Post by: AngelFish on December 03, 2010, 07:46:40 pm
1: A nice menu to greet the user, space permitting.

2: No TI-OS menu. Absolutely not for a released program.

3: A simple, easy to use GUI or UI. Having to read the readme just to figure out how to start the program isn't good.

4: A detailed readme. Not having a good readme automatically disqualifies a program as professional in my opinion.

5: No major bugs. When the program crashes every time it's run, I'm not happy about having to go into the code to fix it.

6: Having the program run out of the box. It's far too common for me to try to run a program, only to find out that the author was using data not contained in the program. All data necessary to run the program should be included in the download.

7: Making something that you'd actually use yourself. Too many badly written programs seem to come from people who don't write things they'd use themselves.

8: Having the program run out of the box. If you can't tell, this ticks me off more than anything else.

9: If you choose to include the source, comment it. It takes ten minutes.

10: Have something to distinguish your program and make it unique. Don't write a quadratic solver unless it's freakin' 3D.

EDIT: Making the most used keys comfortably accessible. One hand should control movement, one hand should control other stuff. For example, don't make your select button the vars key. Make it the 2nd key instead.
Title: Re: Professionalism in calculator games
Post by: squidgetx on December 03, 2010, 07:51:38 pm
-Having all of your nice, non-TIOS menus, look and operate exactly the same. Same goes for custom input routines. When you prompt for input, do it the same way every time.

6: Having the program run out of the box. It's far too common for me to try to run a program, only to find out that the author was using data not contained in the program. All data necessary to run the program should be included in the download.

^This
Title: Re: Professionalism in calculator games
Post by: Michael_Lee on December 03, 2010, 08:17:47 pm
1] Having a readme that gives more info then just a generic "I hope you enjoy this program"!
2] Having a game that gives clear instructions to run, and even better, a game that works out of the box.
3] If using Axe or Assembly, having usable menus (no keys that need to be lightly tapped to prevent overshooting, for example).
4] It has to be thoroughly tested - if you haven't extensively beta-tested it, it's not ready for full release.
5] Having standardized menus or interfaces.  Keeping the keys consistent (The [CLEAR] button acts predictably, for instance)
6] Respecting calculator conventions.  In most programs you can rely on clear, del, or mode to allow you to exit, for example.
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 03, 2010, 11:15:59 pm
6: Having the program run out of the box. It's far too common for me to try to run a program, only to find out that the author was using data not contained in the program. All data necessary to run the program should be included in the download.
I really agree a lot with this. It annoys the shi- out of me to spend hours downloading a game or software, only to find out I have missing DLLs. It's also extremly annoying for those with no internet access at home, because they arrive with the game or software, install it then have to wait until next computer class to download the missing stuff, if he remembers what it was.

Sadly, sometimes it is not possible, for legal reasons, though.

I ran into this often with calc games, especially more recent BASIC games and sometimes with Axe, the pic is missing and I have to create it...
10: Have something to distinguish your program and make it unique. Don't write a quadratic solver unless it's freakin' 3D.
Don't do it in grayscale, though, because a quadratic solver in grayscale has already been done before. :P (If old Omni members remember that fake news on the old board)
Title: Re: Professionalism in calculator games
Post by: AngelFish on December 03, 2010, 11:58:29 pm
ROM images excluded, it's almost always possible to include everything necessary in the download or at least make it blindingly obvious in the readme.
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 04, 2010, 12:28:17 am
Often, what I notice is that the author forgets his game is dependent on certain variables and never test the game after deleting them all. As a result, the game won't work on anyone's calc.
Title: Re: Professionalism in calculator games
Post by: AngelFish on December 04, 2010, 12:30:52 am
It's understandable. What I do is just check everything in Wabbit while I'm taking the screenshot. Since the RAM is cleared every time you open it, it's a good platform for testing.
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 04, 2010, 12:32:29 am
I just did it on-calc, personally. I backed up my save files first, in case, though.
Title: Re: Professionalism in calculator games
Post by: ExtendeD on December 04, 2010, 07:03:09 am
Here are a few additional tips I can share based on my own calculator and professional experience:


Title: Re: Professionalism in calculator games
Post by: Munchor on December 04, 2010, 08:47:39 am
Spoiler For ExtendeD Speech:
Here are a few additional tips I can share based on my own calculator and professional experience:

  • Build smart software. Smart software make extensive (but never read) documentation useless. Smart software make the user feel he has been using it forever even the first time. Smart software subtly suggests. Dumb software impose constraints.
    A screen that adapt what it shows based on previous use is smart. A preference setup that reset to the startup values after a crash is dumb (I'm sure you know one).

  • make sure of the quality of what you build. Test often and extensively. Track the features of the game, identify reproducable test steps, learn when to re-run them for regression testing. Look for automated testing and build custom tools to make it possible, the time invested will quickly be profitable to the quality of your work. Version control (http://en.wikipedia.org/wiki/Revision_control) may also be of great help to track changes and understand regressions.

  • streamline your release process. This is a prerequisite to frequent releases (and thus users feedback). A release cycle includes building, testing, packaging and uploading. Simple custom scripts will often be enough, but you may also have a look to well-known tools that make the job easier such as Make (http://www.gnu.org/software/make/), SCons (http://www.scons.org/), Rake (http://martinfowler.com/articles/rake.html) or Gradle (http://www.gradle.org). If you can't automate the process, try at least to reduce it to a simple and systematic manual procedure.

  • promote you work. An excellent game will become excellent only when people know it and believe it. Share early screenshots and demos, build roadmaps, announce important releases where users will ear them. Know what makes your work unique and tell the world.
    And always let the users drive you. Track feature requests and discuss them extensively. Make bug fix your priority: make it clear what information you need for the diagnostic, and take the time to reproduce them on your side (users aren't stupid, they are just not developers). Never let workarounds become the way to go.

/me totally agrees with ExtendeD and adds "Avoid being repetitively asking for coding help and sprites help in the forum, it is good for programmers like me, who are in learning phase, but if you want a professional game, think like Professional Programmers (Microsoft, Google, etc.), they don't run to forums and spam their doubts"


Title: Re: Professionalism in calculator games
Post by: Michael_Lee on December 04, 2010, 03:53:36 pm
Question: in program descriptions, is it more professional to keep it short and simple, or lengthy with a full speech about how great it is?  What is the appropriate length and content material for such a description?
Title: Re: Professionalism in calculator games
Post by: Ashbad on December 04, 2010, 04:22:31 pm
Make your game worth play by having a great story, great characters, great setting, etc.

Make sure the gameplay is fun and not frustrating/confusing

Make sure controls aren't too sensitive.

If possible, include all data WITHIN the main program.

If you can't, try and make as few appvars as possible.

saving and loading from an appvar looks professional.
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 04, 2010, 04:49:18 pm
I really dislike when I download a computer software but even after reading the readme, I still can't understand how to get it to work. This is frequent with Linux-native softwares ported to Windows: Their authors seem to assume that if they can understand it easily that everyone else will, so their readme is written only for people with an IQ of over 300 or so.

Also, think about people who are more visual as well. Don't put an unnecessarly long wall of text in your readme. Try to keep it as short as possible, else some people will just get lost and skip the wall of text. In other word, don't make people go "TL;DR". If you absolutely want to put so much info in your readme or program, at least include a shorter version with your release.
Title: Re: Professionalism in calculator games
Post by: FloppusMaximus on December 04, 2010, 05:10:20 pm
Certainly one major part of making your programs "professional" - maybe even the most important part - is designing a good user interface.  That applies to all programs - games, editors, math programs, you name it.  It's often a very difficult problem, and it's one that a lot of programmers have a tendency to ignore.

1) No default TI-OS menus, input routine and other type of GUI. Even more professional: custom fonts, but that's not that necessary.
Sad but true: the standard OS menus are quite ugly.  I think it's OK, though, for programs like Symbolic, Omnicalc, and Unit Ops, which are designed to be integrated into the OS.  For other programs, I definitely recommend emulating the feel of the OS menus (standard repeat rate/delay, numbered/lettered options where possible, arrows to indicate when you're at the top/bottom of the list) but not the look.

As for custom fonts, they're OK in some circumstances, but they must be clearly legible.  All too often you'll see programmers who have designed their own fonts to try to look cool, while ignoring the primary purpose of text (that being, to convey information that the user can read.)

Build smart software. Smart software make extensive (but never read) documentation useless. Smart software make the user feel he has been using it forever even the first time. Smart software subtly suggests. Dumb software impose constraints.
I agree with all of this; these are all good principles for UI design.
Quote
A screen that adapt what it shows based on previous use is smart.
This I do not agree with.  If a program's interface changes every time you run it, that usually makes it harder to use (since you have to re-learn the interface every time, as opposed to a "dumb" interface that you only have to learn once.)  Giving the user the option to change aspects of the interface is a good thing.  But in my experience, changing stuff around automatically, in an effort to make things easier for the user, almost always does the opposite.
Title: Re: Professionalism in calculator games
Post by: Munchor on December 04, 2010, 05:12:51 pm
I like the TI Basic Menu( a lot, but for school programs and math programs.

Awesome menus may be The Impossible Game menu for example.

A new thing to add:

A professional game shouldn't be uploaded all the time. A new version (with plenty of updates) from month to month. Otherwise, not all users are playing the same game. That's very important.
Title: Re: Professionalism in calculator games
Post by: Builderboy on December 04, 2010, 05:24:51 pm
One thing that i always do in my programs, I include a logo (Angle Productions) but i only have it appear the first time the program is run, as i found that when playing other games with logo's, it got annoying quite fast for having to wait for the logo to load every time i wanted to play the game.
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 04, 2010, 08:45:57 pm
Certainly one major part of making your programs "professional" - maybe even the most important part - is designing a good user interface.  That applies to all programs - games, editors, math programs, you name it.  It's often a very difficult problem, and it's one that a lot of programmers have a tendency to ignore.

1) No default TI-OS menus, input routine and other type of GUI. Even more professional: custom fonts, but that's not that necessary.
Sad but true: the standard OS menus are quite ugly.  I think it's OK, though, for programs like Symbolic, Omnicalc, and Unit Ops, which are designed to be integrated into the OS.  For other programs, I definitely recommend emulating the feel of the OS menus (standard repeat rate/delay, numbered/lettered options where possible, arrows to indicate when you're at the top/bottom of the list) but not the look.

As for custom fonts, they're OK in some circumstances, but they must be clearly legible.  All too often you'll see programmers who have designed their own fonts to try to look cool, while ignoring the primary purpose of text (that being, to convey information that the user can read.)

Build smart software. Smart software make extensive (but never read) documentation useless. Smart software make the user feel he has been using it forever even the first time. Smart software subtly suggests. Dumb software impose constraints.
I agree with all of this; these are all good principles for UI design.
Quote
A screen that adapt what it shows based on previous use is smart.
This I do not agree with.  If a program's interface changes every time you run it, that usually makes it harder to use (since you have to re-learn the interface every time, as opposed to a "dumb" interface that you only have to learn once.)  Giving the user the option to change aspects of the interface is a good thing.  But in my experience, changing stuff around automatically, in an effort to make things easier for the user, almost always does the opposite.
Well, one reason why some people use custom fonts is speed. I even saw people using custom font routines that looked exactly like TI fonts just to get the speed increase over TI's slow text routines.

As for menus, if you make a BASIC game and want it to be as small as possible, I guess you could maybe use Menu() but yeah, otherwise it's best to make them look different.

As for logos and intros, it's good that if it shows up everytime you run the program that they can be skipped. It's not always possible but you can at least skip some parts.

As for title screens, often small games will use a simple one that looks like most old ASM games to not spend lots of RAM on a set of sprites or a splash screen, but for larger programs, I think it's best to try harder at making a title screen, else the game can look less attractive. Don't do the opposite either, though: an amazing title screen followed with a crappy game.
Title: Re: Professionalism in calculator games
Post by: AngelFish on December 04, 2010, 09:11:55 pm
If you're writing a game that will include regular updates, make the code modular so that users can download updates, not entirely new programs.

Also, use a logical version numbering system.
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 04, 2010, 09:42:40 pm
Yeah that can be a good idea. Sadly, some updates are large, though, so those will inevitably require a full re-download or close.
Title: Re: Professionalism in calculator games
Post by: FloppusMaximus on December 04, 2010, 10:01:10 pm
Well, one reason why some people use custom fonts is speed. I even saw people using custom font routines that looked exactly like TI fonts just to get the speed increase over TI's slow text routines.
Yeah, that's a good point.  I was thinking about it strictly from a design perspective.  (Maybe that's another mark of what I consider professionalism: not letting implementation difficulties get in the way of a nice design. :))  And I'm not saying custom fonts are always a bad idea, just that they need to be well thought-out.

Although, as far as implementation goes, the system text-drawing routines are indeed pretty slow, but LoadPattern is usually fast enough.  That's what I normally do for programs that have a lot of text: I use the built-in fonts, but a custom display routine.
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 04, 2010, 10:40:32 pm
Oh you can do that? I guess that's another idea, then, instead of having to include a copy of most fonts again.

As for implementation difficulty, we have to remember that sometimes we're very limited on-calc, though. I doubt, for example, that I would have been able to fit graph screen sprites in Illusiat TI-81 Remake, because of the 2400 bytes of user RAM limit. ;D
Title: Re: Professionalism in calculator games
Post by: Lionel Debroux on December 05, 2010, 05:21:56 am
On the TI-68k platform as well, programs which need to draw strings quickly, often use the built-in fonts (the two main methods in use nowadays being that of RAM_CALLs provided by "kernels", and the one which originated, AFAICT, in TICT eBook Reader) with a custom display routine.

Agreed with ExtendeD on quality control, streamlining the release process and communicating about software (BTW, FloppusMaximus, you don't do enough of the latter, IMO ;) ). Somewhat less agreed on smart UIs, for the caveat outlined by FloppusMaximus: UIs shouldn't try to be too smart.
Title: Re: Professionalism in calculator games
Post by: Galandros on December 05, 2010, 07:13:59 am
How professional can one make a calculator game? Discuss.
Since many people replied by features that make a calculator game professional, I think it is interesting to showcase some professional calculator games out there for z80 calculators.
In my honest opinion they are:
- Robot War 2 by DigiTan
- Wizards by NanoWar
- Zelda by Spencer
- Escheron: Shadow over Ragnoth by Zera and Iambian or Iambian and Zera (pick the order)

They all put to shame 95-99% of all GameBoy (original) games. Although they are not finished.

I could probably mention Pokemon Red by BuckeyeDude but is a clone, and I guess I am leaving many games. Specially old ones.

Sorry to leave TI-BASIC games behind but if I choose a professional would be with xLib and very probably with some custom font. (I think there are a few) And TI-BASIC language is not professional and was never designed to be. But with xLib some truly professional games can be done, just take lot of effort.
Title: Re: Professionalism in calculator games
Post by: matthias1992 on December 05, 2010, 07:30:58 am
If you're writing a game that will include regular updates, make the code modular so that users can download updates, not entirely new programs.

Also, use a logical version numbering system.
I disagree with the first thing. Mostly because you'll ram will get jammed up pretty quickly with small add-ons and changes, I prefer a complete new version but in such a way that no data is lost. If neccesary provide a conversion program to convert old savegame data to the new format of savegame data.

I don't think it is neccesarily proffesional but some large games should have just one install file that you run and that sets all the settings for you and prompts you wether you want this or that (game saved in custom list or in appvar) + a counter of how much mem it will cost. It gives more freedom to the end user, I hate it when I install a group and then figure I have a list of 20 programs. I just want one program that I need to run. Also if Xlib or Celtx is used I would prefer people would say it in their readme's or if providing a installer: just say, this game requires DoorsCS....

As for the gameplay elements I'd say "story line" is the key word. I think developers should be stricter in the way they program their levels...altough I like the freeworld/freeroaming concept alot I think games that have a linear story line that is strongly guided by the programmer are far more intresting! I think a game also needs some exotic gameplay, like a piece where you would go inside a tank for a top-down zombie survival game or something like that...
A linear story line also gives you the power to make it look like you have physics inserted in your game but you can just fake these FX...
Don't get me wrong, I like to free-roam and discover secrets and so but I think a linear storyline can really spice up the excitement, angst (if a horror game) and expectation alot. I myself discovered this trough COD, it is very linear but nevertheless the story catches you and grasps you, I  am using some exotic gameplay elements in my latest game, Dwell.

So far I really agree and like the tips given here, I am surely going to use them when releasing Dwell...
Title: Re: Professionalism in calculator games
Post by: Ashbad on December 05, 2010, 07:36:08 am
A professional game shouldn't be uploaded all the time. A new version (with plenty of updates) from month to month. Otherwise, not all users are playing the same game. That's very important.

That's very true.  You don't see me redownloading starcraft or spore or Dungeon Crawl Stone Soup every couple of days, so why should I be doing that for a professional calc game?
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 05, 2010, 04:35:14 pm
I personally think that if the update is too large, it is best to have the person redownload most of it, though. Sometimes there are just way too many file changes and making a patch or remembering which files were updated or not is just impossible. I wish on the 83+ it said the last modified date of a file. For small updates, if the game got multiple files it is best to just make the user update one of them or something. I feel for large games redownloading the entire thing can be a major PITA. This happened with Supreme Commander 2 when I ran it. It downloaded the entire 3 GB installer from Steam...

Also, it is possible to sell your programs if they're good and contains no copyrighted material, but it is looked upon in the TI community. The TI community is very open source and most people like how everything is free. When someone says he'S gonna sell his stuff, everytime he's put down by other people who disapprove of such behavior in the TI scene. It can also be hard to sell a calculator game because it's just for the calculator. If you do so, you would need to sell it for cheap.

I think for calc games, if you want to make money from them it's best to just make it donation-ware.
Title: Re: Professionalism in calculator games
Post by: tloz128 on December 05, 2010, 05:44:40 pm
1.) Try to make the artwork in the game look as good as possible. Just because the calculator isn't very powerful doesn't mean you can't make a good-looking game.
2.) Don't release a public version of a game that is known to have significant problems (beta releases are different, though).
3.) Ask for advice from others on ways that you might be able to improve a game. Often times you may be biased in the judging of your own programs and they may not be as great as you yourself perceive them to be.
4.) Try to make something that will be not just played and deleted within a brief period of time. Aim to make the game something great.
5.) Optimize, optimize, optimize! Make it your goal to make the game code as efficient as possible.

Also, even though this does not make the game itself any more professional, it would be a very good idea to distribute the program under the GPL and include the source code with the game (like DJ said- the TI community is very open source, and I know I for one agree with this unofficial philosophy).
Title: Re: Professionalism in calculator games
Post by: Munchor on December 05, 2010, 05:48:03 pm
1.) Try to make the artwork in the game look as good as possible. Just because the calculator isn't very powerful doesn't mean you can't make a good-looking game.
2.) Don't release a public version of a game that is known to have significant problems (beta releases are different, though).
3.) Ask for advice from others on ways that you might be able to improve a game. Often times you may be biased in the judging of your own programs and they may not be as great as you yourself perceive them to be.
4.) Try to make something that will be not just played and deleted within a brief period of time. Aim to make the game something great.
5.) Optimize, optimize, optimize! Make it your goal to make the game code as efficient as possible.

Also, even though this does not make the game itself any more professional, it would be a very good idea to distribute the program under the GPL and include the source code with the game (like DJ said- the TI community is very open source, and I know I for one agree with this unofficial philosophy).

1.) The TI Community is open-source because the source can be easily gotten with decompilers :S
2.) I agree that our games have to be fast!
3.) The artwork is very important too
4.) An Application game is also much more professional than a .8xp one I think
Title: Re: Professionalism in calculator games
Post by: AngelFish on December 05, 2010, 05:51:17 pm
I have to disagree with you on #4, Scout. I can't speak for others, but I think application games are generally a waste of app pages. You don't need to install a whole app for a program. Things like Wolfenstein are very impressive without them.
Title: Re: Professionalism in calculator games
Post by: Munchor on December 05, 2010, 05:52:43 pm
I have to disagree with you on #4, Scout. I can't speak for others, but I think application games are generally a waste of app pages. You don't need to install a whole app for a program. Things like Wolfenstein are very impressive without them.

Yes, also because they occupy Archive space which is necessary. That's why most programs are not published as Apps.

My next game, however, will be published in both.
Title: Re: Professionalism in calculator games
Post by: FloppusMaximus on December 05, 2010, 06:40:16 pm
There are a few good reasons to make your program a Flash app:
- it installs persistent hooks (in which case, a Flash app is the only reliable way to do it)
- it provides libraries for other programs (whether using hooks or by other means; this can be done without making the program an app, but it's much less convenient)
- it allows the user to edit large data files (in which case, you want to leave as much RAM as possible free for the user's data)
- or the program itself requires a huge amount of code and/or data (but in this case, you should also probably consider splitting the program up.)

Normal (RAM) assembly programs are really a lot more convenient for the user (you can hide them, rename them, launch them using any shell you like, organize them into folders if your shell does that, compress them if need be, store them in RAM or archive or on a USB stick...)
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 05, 2010, 10:50:50 pm
With apps, you also bypass the 8192 bytes code limit, right? (8811 in shells, if I remember)
Title: Re: Professionalism in calculator games
Post by: FloppusMaximus on December 05, 2010, 11:06:17 pm
That's true.  There are other options - you can, if you need to, copy chunks of code into lower RAM areas to execute them - but it's certainly not as easy as writing an app.  (Not that I'd say writing an app, particularly a multi-paged one, is easy by any means.)
Title: Re: Professionalism in calculator games
Post by: DJ Omnimaga on December 06, 2010, 01:26:47 am
Ah, yeah, I heard a bit about that. You can also do the TI-BASIC launcher trick, but then you end up with multiple files and it can be hard to avoid code repetition sometimes.