Mentioning the above in case others @Vsotvep@le_4TC@RubyMineshaft etc wanted to mention their tools they’ve made for some forum games
I can’t really remember if I’ve made many proper games, probably done bits and pieces for a gamejam the odd time or followed some tutorials to make rts type games but never to completion really.
I can delete if it doesn’t count for this thread (also only coding as an adult because I never learned or knew how to as a kid)
Since I learned go, my usual pet-project is to implement a functional go board that 2 players could use to play go on. It’s usually pretty crappy and I abandon it at some point, as I don’t intend it to be actually used. It’s mainly to have something to work on while I try to familiarize myself with a new platform (or not really new, but my previous experience is severely outdated).
At first I couldn’t remember the last time I did that, but I just recalled that the last time was only a few years ago when I decided I needed to catch up a bit with web development (in my job I hardly do that at all). So I made this quick and dirty contraption:
In the screen shot above (from white’s point of view), black just resigned after white captured a stone and it says “You win by Infinity points” at the top. At the bottom it says that white has 1 prisoner.
This is the main page (https://goserver.goratings.eu/), which represents a playing room. Inside the room are tables with a go board and chairs:
The symbol in the upper left represents your ID. “Bordmaat” means “Board Size”, “Actie” means “Action”.
Each row below represent a table with a go board and chairs. In this case there is one table with a 9x9 board and one with a 13x13 board. New empty tables will be spawned when existing tables are occupied. You can sit down at a table by clicking “Zitten” (=sit down).
You can open another browser tab (on the same computer or a different one, or a phone) on the home page to represent a different player wondering around in the playing room, looking for game to play or watch.
As soon as 2 players sit at a table, the game starts.
Any more users that join the table will be spectators (“Kijken” = Watch).
Those table mechanics are somewhat similar as the Yahoo Games version of go used to be (or maybe it still exists?).
I also stole the visual representation of the go board.
I never finished it though (scoring is one important missing piece) and I’m pretty sure it’s quite buggy.
It is even somewhat embarrassing to show it, so please don’t report bugs, as I have no intention of maintaining that thing (I don’t even know if I still have the source code laying around somewhere).
I started making many simple programs in BASIC language, but because the computer was so slow, I needed to incorporate subroutines in assembler. I made only one game: pearls (=white disks) sometimes appeared randomly at the bottom of the ocean (=a sine curve). A diver had to swim and get the pearls without being touched by the shark. The shark could only swim in 8 directions (0°, 45°, 90°, etc.) and was attracted towards the diver. The graphics were basic but I was quite proud of the result.
I almost stopped programming a few years after so I would now be unable to make a game with graphics using the current tools.
Does it have to be a programmed game? If not then here’s my contribution:
I like games that require thought. eg. Go but my partner (despite being very intelligent) could happily play something like ‘Snakes & Ladders’ all day.
My compromise creation was a version of Snakes & Ladders where each player gets two pieces, one short and one tall. On rolling a 1 or 3, only the short (odd) piece can be moved. On rolling a 2 or 4, only the tall (even) piece can be moved and on rolling a 5 or 6, the player may choose which piece to move. Players ‘bounce’ of the finish line unless the correct number is rolled and both pieces need to make it home to win. I also created a custom spiral board but that’s immaterial. Any Snakes & Ladders board will do.
I was never much of a coder, but I always loved designing games (like thinking up the mechanics and stories) I just usually failed to program it properly so I hacked my way all around it and rarely ever finished something.
My first “game” I created must have been around 12 (I guess) and I made it in powerpoint - oh yes. It was a “shooter” with custom MS paint graphics. Basically every other slide was a game over screen and those in between had timed transitions. So if you did not click fast enough, it would transition to game over. If you clicked onto the attacker in time there was a hyperlink to jump one slide over.
Then I had a brief time of using the ol’ Game Maker where I actually did “finish” some games, but they are all lost down the history drain.
And finally - and admitadelly I am a bit proud of this one - more recently we did manage to program (in Unity) a fully 3D space shooter sort of based on Stargate- that we used for one rainy day at a children’s summer camp. The game itself was extremely simplistic, but we managed to integrate it with a real word “stage”, where we set up a makeshift cockpit of a spaceship (mostly with cardboard boxes) in a room with a projector, projected the windshield with the game onto a wall, we had a “pilot” and “gunner” controlers made up of “artistic” setpieces with arduino accelerometers (because controlling a spaceship with a keyboard and mouse is just lame) and I was hidden nearby with a keyboard of my own which had keys mapped to game scenarios, so we could have real enemies teleport onboard (with proper security warnings), players could repair some damage, by plugging up the holes we have made in the boxes, etc. It was a silly barely functioning game with lot’s of warning texts and effects, rather than actual 3D models and gameplay, but merging it with the physical world just made it amazingly playable (and largely hillarious).
I’ve heard “Processing” is quite a nice language to get started with graphics. Apparently they were teaching it to first year college students with minimal, like no programming experience.
Here’s a random video that I like the opening of, because he shows you just hitting run with zero lines of code
I have minimal experience with it, I remember trying to learn it briefly and quickly in order to try to become a demonstrator because I needed some income, so naturally I started coding up a functional go board in it. It’s quite nice because really a lot of the code is centred around drawing things to the screen and animating, and basically what should happen in a big render loop (like do something if there’s a click or some other condition) and I think there was a choice between Java and python syntaxes for whichever was more comfortable.
Just if that was something that still interested you, or maybe I was misreading
Possibly my most-ever-used game was a play-by-email implementation of a beautiful pencil and paper game called originally called “Waving Hands”.
I believe that my play-by-email implementation was the first computer-based implementation of the game, although it is listed second here.
(History is also an interesting thing. I definitely wrote to Richard Bartle asking permission put the game live, and my recollection is that he replied, although his description on that page is one of suprise finding implementations).
I was quite proud of my Perl implementation, which was the first Perl code I think I’d written that was readable and maintainable (Perl coders will understand the sheer restraint that this involves)
It ran as FireTop Mountain for about 20 years on Richard Rognlie’s PBEM Game Server before finally the old version of Perl it was on no longer ran.
This is a beautiful game because of the tactical complexity that emerges from simple rules.
I was very happy of the elegant way in which I was able to render the gameplay into nice-to-read English in emails that the players received (this was a time before real-time games were feasible online), kind of matching the elegant spirit of the rules.
I think if you take a look, you’ll likely appreciate the ruleset - you may even be able to find a live server to try it out. Please remember to return to playing Go some time, if you do that
One of my first major programming projects was a Visual Basic program I called Bouncy. I was probably around 13-14. It simulated balls bouncing around in 2d with controllable velocities and size and mass and elasticity. I worked out all the maths for the collision engine myself, coded it up (about 3000 lines of code iirc) and it worked first time which was pretty awesome. Although I made the same mistake the developers of Microsoft solitaire did and forgot to redraw so the balls got trails as they moved.
Wait a sec… this sounds eerily similar to my first game dev experience! Although mine was much more primitive
I had a book called Visual Basic Game Programming for teens. Looking back I don’t even know how that was a thing. Who makes games in VB?
Anyway, I made a basketball game, where (you guessed it) the ball would bounce and you had to get it into the net. Similar mechanics to slime basketball. Graphics were ASCII based, but somehow not locked to the usual grid. I guess I could specify pixel location of letters? Idk this was a long time ago…
Found it on my backup hardrive! Unfortunately even after installing some old VB ocx files to get it to run, had an error on startup. EDIT: Looks like it’s trying to register the .bcy file extension (which I used for importing/exporting ball data) in the registry and giving an unexpected return code all these years later on Windows 10 vs 98 or XP or whatever it was designed for back then.
At least I could open the .chm help file I made with these gems:
Licence and Disclaimer
This program is shareware and you are free to distribute it as much as you like. However, I am not liable for any damage the use of this program may cause. To my knowledge, I haven’t done anything which may harm your computer, but Bouncy was made using Microsoft Visual Basic so Microsoft might have added one of their viruses which tells Microsoft all about you when you connect to the internet. All trademarks, copyrights etc. are properties of their respective owners and so on.
and (complete with spelling errors)
Correction Twiddle
This value is used in the collision algorithim and adjusting it affects the amount the balls don’t collide when they should and therefore overlap and get stuck in ‘orbit’ arround one another. The typical value is 0.005 or less, much higher than this and it has a detremental effect in which it increases rather than decreases the frequency of missed collisions.
It came into being as a bit of a botch I made to overcome an unusual problem I encountered whilst developing the collision algorithim. Occassionally balls would not bounce off on another when their edges met, but overlapped and then got stuck together because collisions were detected as the balls were to close together. I diagnosed this phenomenom as being caused by slight errors in calculations (presumably caused by the innacuracies of floating point numbers) meaning that a collision was thought to have already happened when it hadn’t. I therefore added a ‘correction twiddle’ (I don’t remember where I got the name from but it stuck) which was the amount of permissable error in the calculation. Its effective range is 0 to 1, negative values are not accepted and any number greater than 1 has the same effect as 1. Set at 0 it has no effect.
VB was my first programming language, not counting things like logo at school. You could get pretty far with it: with the help of Amazon.co.uk I even wrote a key logger in it (though did need a C dll for the guts) which I used to get admin control of the school network and replace the computer icon on the login screen with a smiley face and make the OK button run away from your mouse. Good times
In the late 80s I had an Atari ST 520, which was an incredible improvement:
I remember trying to make something similar to the Star Wars arcade game (with vector display, but 3D unlike the earlier 2D Asteroids arcade game). Because 3D rendering required really fast code execution, I couldn’t really use regular BASIC (which was usually interpreted and thus slow), so maybe I was programming in Forth. But I’m not sure. It could also have been (compiled) GFA BASIC (somewhat similar to PASCAL) or C++.
I never got anywhere near to finishing that game though. Most of what I started never got finished.
Edit: I may be misremembered programming in Forth on my ST. It’s possible that I did that on the computer I had before the ST, an Atari 400 XL:
Also, C++ may not have been available for the ST at that time, so I was probably using C instead (which was already a lot less painful than Forth).
They never found out if was me (and a friend), I think they thought it was external. The whole thing almost worked perfectly but for an unexpected hiccup on deployment day which taught me a valuable lesson that it’s the rushed changes to fix unexpected situations that burn you: making, testing, installing the keylogger on PCs around the school (via a VBA macro in excel), waiting to collect admin password (yes, dumb admin logged in to public PCs, and as we would find out latter password didn’t change in years), collected password, cracked password file for all users, installing the login prompt modifier; all that went smoothly and worked fine. But come trigger day on April 1st we found only some of the computers in the school were affected; turns out loads of them had their clocks wrong (yeah, crappy admins). So we hurriedly wrote some script on startup to sync the clocks, but got something wrong in that for certain computers and broke them.
That was long long ago. I cheated a bit here each
time i said i am no programer because i reached at that time to be uni prof of algorithms in science studies… I’ll be forgiven as my career was very short.
So before that as student i went to implement a battleship game on my oric1 48k (ram. No rom whatever) I used the native basic included but the drawing of the grid was supra slow (like a few mns) so i decided to do that grid in assemblor (french word? Like machine language, very basic instructions at the level of the processor)
Took me like 3 weeks for a grid… but the result was asthonishing, the grid coming out in a blick of an eye.
Between us, old geeks, i was in love with the scientific HP calculators. I remember an examination where we had a lot of matrix operations to do for 4 hours which i found deeply annoying, so i spent my winter holidays to program them on the HP. That exam went to be the shortest i ever had, a few mns