Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » What's your story or How did you get here?

This thread is locked; no one can reply to it. rss feed Print
 1   2 
What's your story or How did you get here?
DanielH
Member #934
January 2001
avatar

Basically, what's your programming history. Just a fun topic to see where others started. And also, how did you get started with Allegro?

Around '83 we got a TI99/4a computer from one of those big warehouse stores. Best Space Invaders clone by the way is TI Invaders!!! The computer had TI Basic built in. I spent countless hours typing in programs from a book and get correct. Cassette tape saving/loading.

In '88 we got our first PC computer. 512k RAM, No hard drive, two 5 1/4" floppies, Hercules Graphics card with wonderful shades of green. That one came with GW BASIC. Took a while just to figure out how to save and load files to a disk.

Sometime in '89 to '91, I was in high school and a friend of mine knew I programmed. I showed him some of my games I made. He laughed that I was still using BASIC. With a choice of C or Pascal, he gave me a extremely bare copy of Borland Turbo Pascal. I did not have the hard drive space needed for C. And the Pascal compiler had such a tiny footprint. It was able to fit on a floppy.

Mostly with books from the library, I learned Pascal. QEdit was my editor of choice. The compiler came with a couple files for graphics, but they got corrupted early on. So I mainly made games with the ASCII text graphics.

I bought my own PC computer around '95/96. Around that time I also bought a book "Teach Yourself Game Programming in 21 Days" by Andre LaMothe. It came with a C compiler and graphics library. However, when I tried to my own make a game I had some memory constraint issues. It was an 8-bit compiler and I was using too many bytes. I needed something better.

The internet was just become popular with browsers and I found DJGPP. It was 16-bits and there was even a graphics library for it. That's when I found Allegro.

Also found a website called the Allegro Depot with games made from Allegro to download. Anyone remember that site? Downloaded quite a few of those and played with. Looked at the code when I could. One day, I went to that same website and it redirected here. I join in Nov 2000 (older account I don't have access to).

Also in 2000, I started State University. Earned my Bachelor's of Computer Science in 2005. I learned a few different languages while at school. The year I started, they just switched their beginning coursed from C++ to Java. Also had to learn Scheme, Prolog, SQL, PHP, Bison/Lex, Motorola Assembly for the 68HC11 processor. Loved that assembly class. It was for the engineering students. The, non-engineering students, like myself, had a different class where they learned Intel assembly. I took this harder class because I heard the teacher was good.

After graduating I took a year off to remodel some houses and a Condo. Housing market was great and though we could make a bit of money. Nope.

Unfortunately, my post-graduate education went in another direction. I only program for fun now and even that is not much.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

My programming story started when I was around 8-10, playing around with GWBasic on our Leading Edge 8086. Would study code of games and write simple graphical applications. Somehow got out of it and lost interest for a while, but came back strong with DJGPP and Allegro and C++ around 2007 and stuck with it ever since.

Allegro was the first programming community I joined and it was really active at that time. Ah the old glory days of allegro.cc . Someday we will rebuild it all.

I was such a newb and leave it to people like X-G and Gnolam to school me in the proper coding techniques.

Nowadays kids brains are all scrambled with shit like Twitter and Reddit and it's hard to find a good community anymore. So I stuck with allegro.cc all this time and I'm never leaving. >:(:D

MiquelFire
Member #3,110
January 2003
avatar

I started with QBasic. I think it was summer or so when I found DJGPP. Around that time, my dad had got me a copy of Visual J++ (I think that was the name), but I got annoyed that it didn't support all of the features of Java in the latest version. Never did anything too useful with Java though.

---
Febreze (and other air fresheners actually) is just below perfumes/colognes, and that's just below dead skunks in terms of smells that offend my nose.
MiquelFire.red
If anyone is of the opinion that there is no systemic racism in America, they're either blind, stupid, or racist too. ~Edgar Reynaldo

DanielH
Member #934
January 2001
avatar

What was fun was making a game in GW BASIC that was so large that I ran out of memory. And printing the list was would just go to a crawl. Mostly because I was storing my data in the program itself instead of using files. I didn't have, or didn't know of, a text editor. This was pre-internet.

I really liked that QBasic could also compile into an exe file. Unfortunately, in later versions of QBasic that functionality was removed.

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

Johan Halmén
Member #1,550
September 2001

ABC80 during high school, simple BASIC in 1980.
Sharp PC-1401 including BASIC and machine code, around 1984.
Sinclair ZX81, BASIC and Z80 assembler by hand, around 1985.
Bondwell 16, my first real personal computer. BASIC, Pascal and SmallC, around 1987.
A few Mackintoshes from 1992 on. More Pascal, C and C++.
Struggled with getting Allegro work on Mac. Later I got Windows laptops from work and continued exploring Allegro.

Right now I have more or less lost interest in developing games for computers. I'm more into Arduinos. Still thinking in terms of gaming, though. Like with this little project:

video

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Years of thorough research have revealed that the red "x" that closes a window, really isn't red, but white on red background.

Years of thorough research have revealed that what people find beautiful about the Mandelbrot set is not the set itself, but all the rest.

Neil Roy
Member #2,229
April 2002
avatar

Started learning about computers and programming around 1979.
Eventually in the 1980s I started to learn programming on the IBM PC Jr and TRS-80 Model 2, in BASIC on those machines.
I eventually bought a Commodore 64 and learned BASIC and some machine language programming on it. Upgraded to the Commodore Amiga 500, 1200 and 2000HD and programmed using AmigaBASIC on those until Commodore went bankrupt.
I switched to a PC that I build from old and new parts and started to do more programming using BASICA, QBasic and eventually QuickBASIC (which is the full version of QBASIC that allows you to compile your programs into an executable).
I stopped messing around on that and started to seriously design my first game using QuickBASIC but it was too slow for what i wanted to do so I bought a book called "QBASIC TO C" which taught you how to program in C by showing you how to do similar code you done in QBASIC and how you done that in C. The book didn't get good reviews, but I loved it.
To compile my programs in DOS, I found DJGPP, the free, 32bit GNU compiler which was a godsend as you didn't have to worry about memory limits with it. I started to program my own graphics routines but eventually I found Allegro, how or where, I don't know. This was before this website existed. I created my first, unfinished game with it and started on my second game, "Deluxe Pacman" which I originally created it (or recreated it) for DOS for my wife who missed playing it on the Amiga.

Been messing around with C on and off for years now. My wife died last year (five months ago) and my game, Deluxe Pacman 1 and 2 are still available for free (with source code) online at https://nitehackr.github.io/games_index.html

It's been quite the journey. I miss the old days with limited hardware. Seemed more fun back then.

Edit: I just realized it will be 20 years next month since I first joined this site. Wow :o

---
“I love you too.” - last words of Wanda Roy

Dizzy Egg
Member #10,824
March 2009
avatar

I started tinkering with DirectX 2D bits around 2003, but couldn't quite get to grips with it, and I found Allegro through someone at college who had tinkered with it, and started making games for friends, couple of fishing games and some fruit machinies (casino slots).

After Uni I got work as a programmer in the AV industry, writing controller code for various bits of hardware using C. I kept up the hobby of making little bits and pieces using graphics, mainly in C++ using Allegro. Couple of Speed/Santa hacks.

Now I work 90% using C#, developing a new framework to replace older hardware processors for the AV world, and writing smaller modules for individual pieces of hardware (mix of C/C#). Just started learning Java, and soon Flutter and Dart (for future GUI work).

Don't do much games programming anymore, mostly just programming for work. Always tempted to do something in games, but feel a bit old and tired of late. Still, never say never,

----------------------------------------------------
Please check out my songs:
https://soundcloud.com/dont-rob-the-machina

jmasterx
Member #11,410
October 2009

I was intimidated by programming until I picked up a book on Visual Basic .Net at 17. I started learning winforms vb.net. Eventually a site you may or may not have heard of called stack overflow opened up where I asked enough questions so that today I'm a top ranking member. I eventually moved to C++ where I made an API you may or may not have heard of called Agui. It was used to make the gui in a game you may or may not have heard of called Factorio. Boy am I glad I put in that clause about a license fe... oh wait hahah. So then I worked for a professor doing Objective C. I did some SQL for an AS 400 at one point. I also did a horrible internship in C#. My first proper job I was doing RubyOnRails. And then switched to C# fulltime. About a year ago I got into deep neural networks and got some Python exposure from that.

That's mostly it. I'm not as into coding as I once was. Now I'm like, trying to find a girlfriend or something, which is magnitudes harder than understanding vtables and pointer arithmetic. North American Online Dating is kind of a joke if you're short and not super good looking >:(

Matthew Leverton
Supreme Loser
January 1999
avatar

I got hooked on the C64 Compute's! Gazette and Ahoy! magazines as soon as I could read. I painstakingly typed in the games from source code and was usually disappointed at how lame they were. It wasn't until I was older (~12 years) where I seriously started teaching myself how to program on DOS/QBasic.

Fast forward to now with 20 years of working on countless business apps for other people, I'm ready to retire and do something fun again.

Seriously, I'd rather be programming on my C64 today than that steaming pile of Javascript. >:(

Neil Roy
Member #2,229
April 2002
avatar

I got hooked on the C64 Compute's! Gazette and Ahoy!

Those were my favourite magazines as well. I still own a couple of them I bought way back in the 1980s. I miss programming the C64. Once I learned machine language on it I had a blast.

I think I miss programming for DOS on old PCs for VGA mode the most.

We should have a DOSHack competition, to create a game but only for DOS, can use Allegro or whatever and run on DOSBOX (so more open to more platforms as well).

---
“I love you too.” - last words of Wanda Roy

DanielH
Member #934
January 2001
avatar

I painstakingly typed in the games from source code and was usually disappointed at how lame they were.

So true. Or it didn't work and had to figure out what went wrong.

I used to also get a magazine, but for the PC. It always had a program, written in hex. I didn't even know what hex was back then. That was tedious to type in. Luckily MS DOS had a DEBUG program I could type in hex.

Michael Weiss
Member #223
April 2000

I started with Allegro in 1997 in a basement in Victoria, BC, Canada.

I had been trying to write a game for a long time.

In 1978, when I was 10, I learned BASIC on a Commodore PET
and wrote a few simple programs to manipulate and draw text.

From 1980-1987, I had access to an Apple II+ and spent a lot of time
learning how to program on that. (280 x 192 hires graphics mode!)
I made some games in BASIC, and assembly.

The BASIC games could not not get fast enough, no matter what.
Probably due to an interpreted language and my lack of skills.

Assembly was better, but my skills were not enough to write that
complex of a program in assembly.

For many years I had no access to a computer, or the time or
inclination to do anything about it.

I still wanted to create the game I had in my head, with a little man
running around a level, jumping from platform to platform.

Then in 1997, I was in a seasonal layoff from my job over the winter,
waiting on unemployment benefits, and I had a laptop and internet access.

I decided I was going to work on the game I had in my head.

I searched for some proper tools to create games. I was thinking even
if I had to pirate something, I was going to figure out how to make
my game a reality. All of the microsoft crap did not appeal to me,
but I resigned myself to go there if I had to.

What I found instead was Allegro. It looked awesome. The more I read,
the more I knew it was what I was looking for. And the best part was
that it was free! Nothing to pirate!

The only catch... I would have to learn how to program in C.

I downloaded DJGPP, used RHIDE as my IDE, and added Allegro 2.2.

As I learned C, I was amazed at how logical, simple, precise and elegant
it is. No gotos or line numbers. And it's really fast!

In my game I built everything from scratch. (Well, except for Allegro!)
I started by learning how to draw on the screen.
Then I made some shapes to blit here and there.
Early on I decided to make my game sprites 20x20 pixels.
I made an bitmap editor to draw and edit these sprites.
I built my own routine for saving and loading bitmaps to disk,
(one get_pixel and put_pixel at a time!)

I decided on a level size of 100x100 blocks made of these shapes.
I used an array of 10,000 ints, int l[100][100].

When I was figuring out how to run my game loop flicker free with a
screen buffer, I created a bitmap the size of the whole level:
2000 x 2000 pixels. 4 million pixels!

From 1997 to 2003 I call the first phase of the development.

I always knew I wanted to do some kind of multiplayer.
The game would just be so much better with more players.
It had to be simultaneous multiplayer, like Bubble Bobble.
Just two players taking turns was never even considered.

Initially, I came up with a split screen method.
I created a second player and re-wrote a lot of code that assumed
there was only ever going to be one player.

That worked, but the split screens were kind of small.
Still it was really cool to play simultaneously with another player.

I started to think about how amazing networked multiplayer would be.

I found libnet and made a simple packet exchange of moves.
Exchanging game move packets was easy, but synchronizing the game was not.

I spent a lot of time trying different concepts and abandoning them when
I realized they wouldn't work or I thought of a better way to do it.

In 2003 I released version 5. The netplay stuff didn't work yet, so I
disabled all traces of it with #ifdef's in the source.

I let it go for a few years until I came back with a vengenance
in 2009-2010 to solve the netplay stuff.

I made a lot of changes and improvements, but still had sync issues.
It would almost run perfectly until they slightly went out of sync.

I had made a lot of changes, but because netplay was broken I didn't want
to release without it. Eventually I gave up and let it go for many years.

I had been thinking about the various methods of syncing, but
was still convinced my method should work.

The method I use is called deterministic lockstep, and I wrote in
depth about it in netplay.txt.

The concept is that for the exact same set of inputs, the output will
be exactly the same. So if I could just sync the inputs (what controls
are pressed on what frame), the output should be identical.

I was almost going to try something like Unity that had built in
network multiplayer. I even spent a few hours bulding a test project
in Unity and seeing what it would be like to re-do the game in that.
I decided not to for a few reasons. I wanted do it my way. I wanted to
figure it out myself. I didn't want to spend a huge amount of time
figuring out a new platform and porting my game to it.

In 2017-2018 I came back again and tested a new idea I had.
Basically I removed all floats and replaced them with fixed point numbers.
Floats, while very precise, were not as perfectly deterministic across
different systems as I needed.
Fixed points, while not as accurate, gave the exact same results every time.
After a lot of rewriting, I finally was getting good sync.
I could play 3 and 4 players games with no problems.

I still had rare occasions that the sync would break. Often enough that
I couldn't call it fixed. I wrote a huge amount of logging code, trying
to get to the bottom of the problem.

Eventually I started passing some state information from server to clients
to tell when the game was going out of sync.

That grew to be more and more information until I thought, why don't I try
to send the entire state?

I never designed the game with that in mind, and the structures and arrays
holding all of that data were huge.

100 enemies, each with 16 ints and 32 fixed_point
500 items, each with 16 ints and 4 fixed_point
40 lifts structures, each with up to 40 steps
the level block array (100x100) ints
8 player data structures

All of that came in at over 100k. Way too much to sync with 1K packets.

I did some research and decided to try to use zlib to compress it.
That got my 100K down to around 6-12K.
I wrote code to split it into 1K packets and reassemble them on the
clients. It worked, but it was still too much data and was too slow.
At this point I was only using it to check and see if the game had
gone out of sync.

Then I came up with a dif method. Instead of sending the whole 100K,
I would only send what had changed.

I basically just subtracted one entire state from another, called that
my dif, and compressed that.

That gave me around 600 to 1800 bytes. I would only need 1 or 2 packets!

When I got that working, I decided instead of just checking if I am out
of sync, why don't I just use that to correct the state on the clients?

That is the way that it works now. It checks for differences, but then
just overwrites with the new state anyway. I still check for
differences because I want to know what is drifting and see if I can
find out why. Its not really necessary because getting a new state fixes
everything.

So there are two methods for the game sync:
The old original one just sync's the clients inputs. Every frame, if
the clients controls change, a packet with that control change is sent
to the server. The server then consolidates all client inputs, and
syncs that back to each client independently.

The second method periodically sends a new complete state to each
client in the form of a dif from the last acknowledged one.

Between these two methods, I can now play very long games, with up
to 8 players, across all windows and linux versions, and it works
perfectly!

Then I cleaned up a lot of things in the code that I had broken,
refactored just about every line in the game, added new features, removed
some old ones, went through all the levels, updated the help screens,
made a fancy new rotating logo with splines for the splash screen...

Finally here we are on March 11, 2018 with Version 6.

Netplayer with up to 8 players.
Works on Windows XP, Windows 7, Windows 10, Ubuntu 16.04.

This will be the final release on Allegro 4.
For the next version, I'll convert to Allegro 5.

Well here we are again on April 22, 2018 with Version 7.
Now with Allegro 5.2.4!
Just about every line (25K) of code has been re-factored.
The display routines have been completely redone.
Now with dynamic resizing while the game is playing!
The linux version now is a precompiled executable.
Numerous small bug fixes and improvements.

piccolo
Member #3,163
January 2003
avatar

wanted to learn programing so i tool on project that contain most if not all the different areas of programing. Rpg Game building saw DanielH sight they got linked to allegro from there. I was intrigued by the people here and decided to study everyone so that i could understand my self more and what made me ME because i sensed similarity in this community. then i begone to transform into a god

wow
-------------------------------
i am who you are not am i

Mark Oates
Member #1,146
March 2001
avatar

piccolo! :o

--
Visit CLUBCATT.com for cat shirts, cat mugs, puzzles, art and more <-- coupon code ALLEGRO4LIFE at checkout and get $3 off any order of 3 or more items!

AllegroFlareAllegroFlare DocsAllegroFlare GitHub

RmBeer2
Member #16,660
April 2017
avatar

Piccolo's cosmic vacation is over.

🌈🌈🌈 🌟 BlackRook WebSite (Only valid from my installer) 🌟 C/C++ 🌟 GNU/Linux 🌟 IceCream/Cornet 🌟 🌈🌈🌈

Rm Beer for Emperor 2021! Rm Beer for Ruinous Slave Drained 2022! Rm Beer for Traveler From The Future Warning Not To Enter In 2023! Rm Beer are building a travel machine for Go Back from 2023! Rm Beer in an apocalyptic world burning hordes of Zombies in 2024!

Mark Oates
Member #1,146
March 2001
avatar

RmBeer2 said:

Piccolo's cosmic vacation is over.

;D

--
Visit CLUBCATT.com for cat shirts, cat mugs, puzzles, art and more <-- coupon code ALLEGRO4LIFE at checkout and get $3 off any order of 3 or more items!

AllegroFlareAllegroFlare DocsAllegroFlare GitHub

DanielH
Member #934
January 2001
avatar

piccolo said:

saw DanielH sight they got linked to allegro from there

I'm glad the site did some good. I started that website with good intentions, but about the same time I got a bit overwhelmed by school, depression, life, etc. Even as little as I did on the site, I took it down to stop getting emails. I got so bad that I cancelled all my classes at Uni as well. I took a semester off just to revamp. Hurt my GPA a bit because I was in the upper level classes by then.

Polybios
Member #12,293
October 2010

Started with QBasic / DOS at the age of 9 (I think), moved on to C at 11. Had an old Borland compiler copied to me from someone's father on multiple floppy disks. Wrote things like a mouse API adapter myself with calls to interrupt 33 etc.
I could only access the Internet occasionally during my mother's lunch break at work. Discovered and downloaded DJGPP / Allegro there - the fun started, finally something that could do all the cool stuff I wanted.
Copied my downloads to several floppy disks. When a disk went bad, I had to wait several days for the next opportunity. This was in the 1990s.

Edit:

jmasterx said:

North American Online Dating is kind of a joke if you're short and not super good looking >:(

Waited for an oppurtunity to post a link to this article analyzing the "marriage market":
https://quillette.com/2021/06/28/mate-selection-for-modernity/

Mark Oates
Member #1,146
March 2001
avatar

Polybios said:

Discovered.. Allegro - finally something that could do all the cool stuff I wanted

That's the best description of Allegro I've heard! ❤️

--
Visit CLUBCATT.com for cat shirts, cat mugs, puzzles, art and more <-- coupon code ALLEGRO4LIFE at checkout and get $3 off any order of 3 or more items!

AllegroFlareAllegroFlare DocsAllegroFlare GitHub

Trezker
Member #1,739
December 2001
avatar

Stumbled upon programming in school. A classmate introduced me to QBasic. Thanks to that I later took a C/C++ course during which I discovered someone had installed this allegro library on the school computers.

It's so long ago now the details are gone. There's so much of my early computer exploration I have no idea how I figured things out on my own. I sure couldn't google everything back then.

Ariesnl
Member #2,902
November 2002
avatar

I started with GW-BASIC when I was a teenager. Out of frustration because no game I tried back than would run on my computer, having an uncommon videocard.

I quickly stepped over to C++ and C because of BASIC's limitations.

When I started with computer science (over here called "informatica") I had to learn Turbo Pascal, which hade some coolness over it. Evenually followed by Delphi.

C# I learned in the field out of necessity, but certainly not my favorite.

I discovered Allegro quite early when I was looking for a replacement of the pix graphics library for C++. Which worked, but was a pain in the ****.
I also used DelphiX a few times, quite nice, but the documentation was hell.
Japanese translated to english...;D

Perhaps one day we will find that the human factor is more complicated than space and time (Jean luc Picard)
Current project: [Star Trek Project ] Join if you want ;-)

RmBeer2
Member #16,660
April 2017
avatar

I can see all Mini-RmBeers here, all about of GW-BASIC, QBASIC, Pascal, Djgpp, C/C++, Commodore 64, etc.

Someday i will write here my sad story.

🌈🌈🌈 🌟 BlackRook WebSite (Only valid from my installer) 🌟 C/C++ 🌟 GNU/Linux 🌟 IceCream/Cornet 🌟 🌈🌈🌈

Rm Beer for Emperor 2021! Rm Beer for Ruinous Slave Drained 2022! Rm Beer for Traveler From The Future Warning Not To Enter In 2023! Rm Beer are building a travel machine for Go Back from 2023! Rm Beer in an apocalyptic world burning hordes of Zombies in 2024!

BAF
Member #2,981
December 2002
avatar

I typed in random QBasic programs from some random book I had as a kid. Around 12 or so, I wanted to learn how to program for real, and went and picked out a book on C++ randomly. Eventually I wanted to learn how to display graphics on the screen and do a bit more than just text based stuff, and found Allegro.

And here I am now, having done professional development for 13 years. Dang, I'm getting old. 8-)

GullRaDriel
Member #3,861
September 2003
avatar

Twenty four years ago from now I was coding on my casio calculator during my year 9 pupil /class, and a friend of mine was already coding using C and allegro.
He was bored to see me on my limited hardware, and was urging me to code using my computer. At that time he was doing his way in the demo scene and coding scene, and his knowledge of C, allegro, 3D, algorithms was truly impressive at his age.
I can say that my first real maths & code teacher was him, J.Georges aka Chewie/Chewbacca.
I spent most of my free time going to his home and having coding sessions.
The forums were a good ressource of answers, IRC also. I do not remember the usernames I had.
Lurked a lot before registering, lost an account.
Then here we are :-)

"Code is like shit - it only smells if it is not yours"
Allegro Wiki, full of examples and articles !!

 1   2 


Go to: