October 20, 2020, 06:06:14 am

Alternatively, join us on Discord.
You can help CodeWalrus stay online by donating here.

Weird decisions you have taken during game programming

Started by DJ Omnimaga, March 15, 2016, 11:21:51 pm

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DJ Omnimaga

I forgot if we had a topic about this but I couldn't find one that wasn't specific to Mana Force, so here is a more general one.

We all know that some commercial games had weird things in them that made us think "What were they thinking?". But I'm sure this happened at least once to all of you during game development, such as weird decisions that you would have not taken if you had made the game many years later or absolutely strange oddities in some of your game releases. I thought it would be fun to share them. And perhaps share other oddities that you found in other games.

-Spinball (Omnipack SE)
To erase the highscore in this game you must type a password. The password is ""Spinball est le meilleur jeu que j'ai jamais joue!!!". I don't know why I required typing a password this long, plus anyone can open the source in TI-Connect or something else to see the password anyway.

-Hinkel 2 (Omnipack)
Using lbl/goto for arrow keypresses. While they can result into a minor speed gain if used in specific ways, the problem is that games using them in the Omnipack collection were originally standalone games. When compiled into a big pack, the result is that the Lbl/goto branching became abysmally slow, resulting into 0.5 seconds delay when pressing arrow keys. It mainly happens in Hinkel 2.

-Pong (Omnipack)
Probably the slowest-paced pong game in existence. I still don't get why I bothered including it in the game pack instead of banning it from existence.

-Cartemon (Omnipack)
Probably the most unbalanced trading card game in existence. Not that you can customize your deck anyway. There is no trap/effect card either. All you have to do is spam the card that has the highest HP+Atk combined every round and unless you play in hard difficulty, you are guaranteed to win, while in hard difficulty it's entirely luck-based.

-Poulet en Fuite (Omnipack)
Yes, there is a video game based on the movie "Chicken Run", and just like Hong Kong 97, it has nothing to do with the movie. Not that the game is bad, but for whatever reasons, of all the movies in existence, I decided to choose Chicken Run.

-Illusiat 7, 10, 11 & 12
In some cases, the game title logo was rendered by BASIC code, often from a string or matrix. The problem, though, is that sometimes the result took more RAM than if I had used a picture, and it was much slower to render. In my defense, though, I often ran out of picture files when making those games. :P

-Illusiat 7, 9, 11, 12 & Mystique
Having multiple save file support. While this sounds like a nice addition, it's not very useful to have that many on a calc that only 1 person will ever use, it caused many problems (ERR:MEMORY) and they did not keep track of which game chapter you were in. If you switched to an older save file but forgot which chapter files had to be unarchived, then you were screwed. This was fixed in Illusiat 7 and 9 by making switching between chapters automatic, though, at the cost of making both games no longer pure-BASIC.

-Metranor (dice-pen RPG comic book)
Not a video game, but this one has an enemy monster called Metallicca-Afghanistan (sic).


Mad Libs had no check to see if your word was too many pixels wide (it only checked for character count).
Shutdown (the version I released) has a fatal bug in it that exits with an error if you move your cursor to certain places while making a custom board.
Cookie Clicker Axe had one giant screen buffer entirely for clickable hotspots, instead of something like a different buffer for each clickable things, or hardcoding everything.
Mastermind used to check for answers before submitting them, so you could win without even submitting one answer (it works fine now).


Most of the thing I did contain weird stuff that I might or might not ever address in the future. But in the software I wrote in 2016:

Yukibot-Discord: You can see I began writing the strings in French, then switched over to English, so it ends up being a weird mixture of French and English. The license is also in French (with an English translation), but all the docs are in English, save for the !help command in French.
Twitch plays Undertale: There was separate commands to press and release directional buttons on the keyboard, so Frisk just ended up spazzing out and the users asking why they're going in the wrong direction. I removed that and replaced it by a timer that releases the button 500ms after having pressed it. That was way too long so Frisk was walking for too long (imagine walking 2 cases at a time and you have to position yourself between those 2 cases in order to do an action) so I reduced it to 200ms. The game crashed after a battle anyway.
This Pathfinder game I'm playing with a bunch of friends: Not a software but I'm playing a wizard and I haven't chosen any spell for her yet, since we switched from the D&D 3.5 rules on Christmas. Might be problematic for the next scheduled battle next Thursday.
Read Zarmina!
In the beginning there was walrii. In the end there will be walrii. All hail our supreme leader :walrii: --Snektron

if you wanna throw money at me and/or CodeWalrus monthly it's here


Flappy walrus:
The game uses 3 different graphics buffers :P
Lazer (basic)
All the level titles are weird, and some are basicly inside jokes that no one will get :P
V2 also has a rickroll aftr level 50.
Lazer II (Axe)
Level packs arnt realy like level packs. My original idea was to have them be sharable, like in mario83. However, the idea was scrapped for technical issues, and 3 packs are built in. Traces of my original idea are still there as every built in 'level pack' is a separate file in memory.


That's only a coding decision, invisible to the user. But basically, there is a "structure" for the menu and one of the attributes has to be declared before the pointer to the structure :P
Basically, it's as if instead of having a list of attributes like this

-- toaster
-- the game
-- lolno

you had that

-- toaster
-- the game
-- lolno

The reason for this is that the menu is the only part of the code that wasn't written with readability and maintenability in mind, so when I wanted to add a feature to it (button to get to the previous sub menu), I didn't manage to add an attribute at a more logical place :P


March 18, 2016, 01:48:33 pm #5 Last Edit: March 18, 2016, 02:05:32 pm by JWinslow23
If I could add some more...

The source of Flappy Bird has all the text in it replaced with its equivalent hexadecimal, making it hard for me to figure out what it was I actually wanted to output without playing the game myself :P

Pretty much every Axe game I've made until now (except for Cookie Clicker Axe) was kept in one source file, with graphics before everything else. This caused me so much frustration when I would get so impatient scrolling through everything to change one little section of code that I'd accidentally press CLEAR and get rid of one of my main graphics data sections >:(

The barebones game engine of This is the Only Level was 3.2KB, and hard-coding the "tricks" to each of the stages took >5KB to put in (not counting anything else like menus or an ending :P ), and it drove me nuts. It absolutely required a function of the stage number every few lines of code :banghead:

DJ Omnimaga

March 28, 2016, 03:03:53 am #6 Last Edit: March 28, 2016, 03:05:57 am by DJ Omnimaga
@c4ooo what are each of the 3 buffers used for in Flappy Walrus, by the way?

@JWinslow23 I never, ever pressed PRGM after an error in Axe. Back in the days, there were rumors that this could randomly crash the calc or corrupt my source code when it was archived, so I took no chance. Also I think it's fine if the TITOL engine is this large, considering how the entire game is centered around one level and most stuff had to be hard-coded.

Also there are other things that are weird that I made:

-In The Reign of Legends 1, 2 and Mana Force 2, the world map is artificially slowed down near the top, because strings are slower to read from near the bottom, otherwise the map would have scrolled over twice faster in the North than the South. But the problem is that the slowdown was poorly implemented and the result is that even the bottom ended up with slowdowns.

-In many games I made, I also went the lazy route of erasing the entire screen and redrawing everything every frame, even static stuff, instead of erasing movable objects then redrawing only them.

-Illusiat 6: When I translated the Illusiat series to English, I forgot that I already had translated Illusiat 6 two years before, under the name Nemesiat. As a result, there are now two different English translations of Illusiat 6 and the older one is the one with the fewest typos (and is 82 Stats-compatible due to being all-caps and stuff).

-There is also at least one or two games I made in the past that drew string-based maps character by character, but I forgot which game. Perhaps I did that in an RPG to keep the map drawing speed/animation consistent with dungeons, which used different map format, but regardless, it resulted into unnecessary wait times.


I decided to make the main character in Mr. Bob's Bad Day live in North Dakota, U.S.A. so that he could be arrested for sleeping in bed with his shoes on.
Does this qualify as a signature? 
The answer is "Sure."

DJ Omnimaga

Wait what? Is there some law in North Dakota about wearing shoes in bed O.O


Quote from: DJ Omnimaga on April 02, 2016, 11:29:52 pm
Wait what? Is there some law in North Dakota about wearing shoes in bed O.O

Believe it or not, there is.
Does this qualify as a signature? 
The answer is "Sure."

DJ Omnimaga

Oh wow. I lost fait in humanity by an extra 0.1% now. O.O

Also, some people might like it and I'm still kinda proud of the animation that resulted from it, but one weird decision I took by programming was to include a 2 minutes long cinematic in one of my games: Zelda Dark Link Quest.

The problem is that the animation is not only 30% of the entire game size in kilobytes, but also it makes it a major PITA to send the game to calculators with any modern linking softwares, due to using hacked pic vars (I still need to check if we can send those with TI-Connect CE, though). I bet that a lot of people probably didn't make it to that animation, because the game controls are slow and weird (imagine if in a Link to the past, the A, B, X and Y buttons acted like a second d-pad to attack enemies with your sword in the direction you want) and the game is a major hassle to install.

I really need to re-record that animation in better quality at some point, because while there is a Youtube video showcasing it, it's quite blurry

(it starts later in the video)


You'd be surprised how many stupid laws there are in America.
Maybe that's why one of the ways to win in the CE game Adventur was to move to Canada.

The video isn't too blurry.
Does this qualify as a signature? 
The answer is "Sure."

DJ Omnimaga

There are a lot of jokes about moving to Canada. Usually when the economy is bad, when a president is doing questionable stuff or something like that.

Also even in Canada we have weird laws, but usually the problem is how hard some gets enforced, while others don't. But that's not really the topic (maybe we should make a topic about strange country/city laws and ways to enforce them) :P


There aren't enough people in the country here that know about the dumb laws to enforce/avoid them.
Not all people know on certain days you can't yell "Ar-Kansas" or mispronounce Arkansas in Arkansas without disobeying the law.

And the real question about making a topic for this discussion is what to name it. :P
Does this qualify as a signature? 
The answer is "Sure."

DJ Omnimaga

Powered by EzPortal