VOGONS

Common searches


Programming DOS games

Topic actions

Reply 20 of 40, by ahendricks18

User metadata
Rank Member
Rank
Member

Well this is quite confusing! I think I will learn BASIC first then C. I see you guys say it would take a while but I've got time this summer. Also I emailed the author of the book I got and he recommended some online algebra courses.

Main: AMD FX 6300 six core 3.5ghz (OC 4ghz)
16gb DDR3, Nvidia Geforce GT740 4gb Gfx card, running Win7 Ultimate x64
Linux: AMD Athlon 64 4000+, 1.5GB DDR, Nvidia Quadro FX1700 running Debian Jessie 8.4.0

Reply 21 of 40, by snorg

User metadata
Rank Oldbie
Rank
Oldbie

This is not really a summer project. You can learn a lot but you won't be able
to complete a game.

Look at something like Akalabeth or the first Ultima or perhaps Nethack,
these are more along the lines of what one person could do.
You won't be able to do a Daggerfall clone by yourself.

Reply 22 of 40, by ahendricks18

User metadata
Rank Member
Rank
Member

Alright. I will look at doing a game similar to those. I like ultima, but have not played alakabeth. I will make it so I can play on my Tand 1000 EX.

Main: AMD FX 6300 six core 3.5ghz (OC 4ghz)
16gb DDR3, Nvidia Geforce GT740 4gb Gfx card, running Win7 Ultimate x64
Linux: AMD Athlon 64 4000+, 1.5GB DDR, Nvidia Quadro FX1700 running Debian Jessie 8.4.0

Reply 23 of 40, by snorg

User metadata
Rank Oldbie
Rank
Oldbie

I don't want to discourage you, but as others have said, starting from scratch
and trying to crank out Daggerfall in a summer is near impossible.
Akalabeth was Richard Garriot's first game and is available for free on GOG.com.
Something along those lines would probably be easier to do. Or go really basic
and try and do something like Pong or checkers.

Then, after you've done a few simple games, maybe pick up some of Michael Abrash's
books and you can think about writing a 3D game. But it will still be an
uphill slog.

Reply 24 of 40, by Sutekh94

User metadata
Rank Oldbie
Rank
Oldbie
smeezekitty wrote:

There actually are some decent games churned out by single people or a small team. Not AAA titles of course but that's not what anyone is expecting.

Dust: An Elysian Tail, for an example. Took the creator (mostly a one-man operation) 3 years to make, and turned out to be a cool game. Of course, this is a modern 2D game for Windows, and I'd imagine a lot of those 3 years were spent on the game's visual design. That being said, you really should start out simple as a lot of people here have said. After you've done a few simple games, maybe you can take a crack at making a 3D game. Taking note of this, though:

ahendricks18 wrote:

I will make it so I can play on my Tand 1000 EX.

It's definitely not going to be a Daggerfall clone, that's for sure. It'll probably be something more along the lines of Akalabeth, like snorg mentioned.

That one vintage computer enthusiast brony.
My YouTube | My DeviantArt

Reply 25 of 40, by leileilol

User metadata
Rank l33t++
Rank
l33t++

Personally I would not recommend BASIC for programming as a start. I feel that'll be crippling in the long run.

Maybe learning C in very small ways could work. Like say, starting out with Quake for example, changing a few weapon behaviors to get the idea of how C works with the simpler and more limited QuakeC subset. And then you'll probably try to frig around with the engine itself which is C (with some assembly to speed some things up, though that can be turned off for 100% C functions so you could learn and tinker with how they do it by trial and error and with that Dr Dobbs book)

Some other games also use a form of C for their game code. Quake2 and Quake III Arena do. Half-Life uses C++ for game code. All the Unreals (up to before UE4) used UnrealScript which is far more object oriented.

Granted, the genre is completely different (these are all killing FPSes) but the point of this is to learn, right? 😀

(Also I still wouldn't know where to start to make a JRPG in the Quake engine, that is very unexplored territory)

apsosig.png
long live PCem

Reply 26 of 40, by Gemini000

User metadata
Rank l33t
Rank
l33t
smeezekitty wrote:

There actually are some decent games churned out by single people or a small team.

No doubt about it. The trick is how much game can one person or a small team make in how much time, and one person, no matter how talented they are, cannot do an MMORPG by themselves in anything less than a lifetime. :P

Heck, the project I myself am working on right now looks like it should've taken mere days to make, but I'm having to come up with all of my own graphics handling and file formats since nothing exists which can handle what I need this thing to do, despite its simplicity, and I'm STILL having to make actual, fun games on top of the system itself which can justify any future games being sold for anything more than free. The first 2 1/2 months of this year was spent working on just the foundation code and a universal editor. Since then, despite getting to the actual games, I still need to update that foundation code with new stuff every so often, the most recent addition being a universal save file handler which can handle save files from every game I make for this thing, that way I only have to write one save file handler for the entire thing instead of one save file handler for every individual game. :B

--- Kris Asick (Gemini)
--- Pixelmusement Website: www.pixelships.com
--- Ancient DOS Games Webshow: www.pixelships.com/adg

Reply 27 of 40, by meisterister

User metadata
Rank Newbie
Rank
Newbie

I appreciate your enthusiasm for learning to write a game, but as others have suggested, I would recommend that you start small.

The first thing you should do is start writing a really basic physics engine. By really basic I mean "Is able to detect collisions and apply acceleration and velocity to objects." Doing so should give you some grounding in the C programming language, namely the use of structs, memory management, and pointers (so you can pass objects to functions without incurring too much of a performance and RAM penalty). Only when you have this engine should you graft something really simple on. I reccomend pong to start with, because it's a very simple game.

Once you get there, you should try to handle sprites (don't try to load images at first, just use text files to define the sprite) and maybe the PC speaker.

Actually, for the purposes of an absurdly basic RPG (as basic as imaginable), monochrome sprites with text and beeps could probably be pretty good if done right. Thankfully we live in an era where you could excuse godawful graphics with nostalgia value!

Dual Katmai Pentium III (450 and 600MHz), 512ish MB RAM, 40 GB HDD, ATI Rage 128 | K6-2 400MHz / Pentium MMX 166, 80MB RAM, ~2GB Quantum Bigfoot, Awful integrated S3 graphics.

Reply 30 of 40, by Chaniyth

User metadata
Rank Member
Rank
Member

I know some dive into BASIC first for programming, or muck around in other high-level languages such as C/C++ but I agree with ncmark, use a low-level language and talk directly to the hardware by going full on machine lanugauge or assembly and don't look back 😀

All the world will be your enemy, Prince with a Thousand Enemies, and when they catch you, they will kill you... but first they must catch you. 😁

Reply 31 of 40, by smeezekitty

User metadata
Rank Oldbie
Rank
Oldbie
ahendricks18 wrote:

Well this is quite confusing! I think I will learn BASIC first then C. I see you guys say it would take a while but I've got time this summer. Also I emailed the author of the book I got and he recommended some online algebra courses.

Honestly, BASIC is obsolete. You would pick up basic programming concepts but I would personally jump right into a C tutorial.

Reply 32 of 40, by Lo Wang

User metadata
Rank Member
Rank
Member

A couple things can happen after you begin to develop a solid C foundation:

1. You realize a large, modern project with a complex database and lots of scripting isn't very manageable in plain C when there's a deadline to meet, so you eventually move onto C++ and make your abode there.

2. You dare questioning the efficiency of C compilers, and diving head first into assembly, begin to appreciate the empowering feeling of dictatorial control triggered by programming a 70's mini.

"That if thou shalt confess with thy mouth the Lord Jesus, and shalt believe in thine heart that God hath raised him from the dead, thou shalt be saved" - Romans 10:9

Reply 33 of 40, by MusicallyInspired

User metadata
Rank Oldbie
Rank
Oldbie

In the many years I've tried tackling programming I've messed around with Allegro, AGS (which uses Allegro), Sierra's SCI (reverse-engineered into a LISP like notation), AGI, C++, and C, all I've managed to complete is a small game I call Faceman in Turbo C++. (controls: arrows, home/end, pgup/pgdn, C)

I also wrote a game launcher program for my old 486 computer which works fairly well. But it's in C not C++. I always wanted to change it over to OOP and add some more advanced features like a config file instead of everything being hardcoded, but I still have yet to figure out how to handle manipulating and reading files. It's tough. I, too, wanted to start from the "beginning" with DOS-based programming ideologies and learning how to write graphic and sound handlers, etc because it felt like I needed to know how to do all of that to know how to do something special with modern systems. You can program any game you want based on the knowledge you have but you can't refine your programming methods that way. I'm sure there's a better more efficient way to program Faceman or that old menu program I made, but I don't know what that is. Programming is hard to get into. There's no set path or planned road to take and I really need one. It's frustrating because I usually pick things up quickly, but programming not so much. But I started very late, too. I haven't been doing it since I was a kid like a lot of other people.

People advise not to get into advanced stuff and just make your game with the simplest tools but how does that teach you anything? It just seems not worth it to me if all I'm getting out of it is a game built on somebody else's foundations and not actually learning much about programming. I give up most of the time because of that.

Yamaha FB-01/IMFC SCI tools thread
My Github
Roland SC-55 Music Packs - Duke Nukem 3D, Doom, and more.

Reply 34 of 40, by shamino

User metadata
Rank l33t
Rank
l33t

I guess my basic suggestion is don't overthink it or worry about how long it might take to achieve some goal. Just jump in and have fun. The only way to learn is by writing code, and to that end the most important thing is to go down whatever path you find interesting.
I'd encourage you to make the transition to C or C++ instead of BASIC, but if it only frustrates you and you'd rather stay with BASIC, then stay with BASIC.
If you wake up one day feeling intrigued about programming joystick inputs, then go for it. If you instead get interested in VGA hardware programming, then work on that instead. If some topic isn't grabbing your interest, don't force yourself into it. Follow whatever keeps you interested in writing code.

Reply 35 of 40, by Gemini000

User metadata
Rank l33t
Rank
l33t
MusicallyInspired wrote:

People advise not to get into advanced stuff and just make your game with the simplest tools but how does that teach you anything? It just seems not worth it to me if all I'm getting out of it is a game built on somebody else's foundations and not actually learning much about programming. I give up most of the time because of that.

It depends on the person's end-goal and why they want to code games at all.

If someone JUST wants to make games to see how much they enjoy it, or just to say they've done it, or for whatever reason, then it's best to start with engines, and SDKs, and other such things so that most of the hard, tedious work is done for you.

But, for someone who wants to actually learn the intricacies of everything and is less concerned about having a finished product, that's when it makes more sense to try and do things the hard way from scratch, making their own engines and libraries and whatnot.

Heck, even if you use something like Allegro, you STILL need to create an engine to work within that. Allegro is just a collection of libraries for accessing system functions and I/O more easily and with fewer chances to screw it up. :B

--- Kris Asick (Gemini)
--- Pixelmusement Website: www.pixelships.com
--- Ancient DOS Games Webshow: www.pixelships.com/adg

Reply 36 of 40, by Lo Wang

User metadata
Rank Member
Rank
Member

I've come to realize there's a lot hanging on the personality of each programmer.

If there's no hard work, you're only going to get a superficial knowledge of things, and that may prove insufficient in the long run.

I had a lot of trouble getting started with programming because I could not even see myself going anywhere without first getting the electronics right, and that ended up working on my favor in more ways than just an edge on the understanding of bitwise operations as I'd begin to learn assembly.

The math is also important. Don't fall for this "you don't need to be good at math to be become a good programmer" garbage. It just ain't true, your algorithms will stink and you'll end up doing a lot of things so inefficiently they may sometimes not work at all. The better the math, the better the programs.

A mere BASIC interpreter will give you enough of an idea about what programming is all about, and that can be very encouraging to people still beating around the bush, not knowing where to start and what to expect because it all seems so complicated from without.

If you get lost programming the alarm on a clock, if your math's not gotten any better since elementary school and you don't honestly have a genuine interest in knowing what makes computers tick at their most fundamental level, this tutorial will get you going in no time, but you'll first need a TRS-80 Model I Level I or an emulator such as TRS-32 plus the Level I rom.

"That if thou shalt confess with thy mouth the Lord Jesus, and shalt believe in thine heart that God hath raised him from the dead, thou shalt be saved" - Romans 10:9

Reply 37 of 40, by BubbaMc

User metadata
Rank Newbie
Rank
Newbie
ahendricks18 wrote:

Hello,
Recently I bought http://www.amazon.com/Tricks-Game-Programming … e/dp/0672305070 book by Andre Lamothe.

Bit of a bump here, but what did you think of the book? I've just ordered a copy myself (have previously read the Windows version and it is excellent).

DracoNihil wrote:
Jorpho wrote:

Good $deity. Do you honestly believe that with no programming skill you could, on your own, be able to construct a first-person 3D engine from scratch?

https://www.youtube.com/watch?v=HQYsFshbkYw

Bisqwit sure makes it look easy.

Holy shit. Everyone with a passing interest in how games are made needs to watch this.

Reply 39 of 40, by Malik

User metadata
Rank l33t
Rank
l33t

It's easy to get into the mood of becoming a DOS game programmer...almost every DOS gamer would have dreamt about making a good DOS game after some time, but without programming background, it will be an effort in futility and frustration and disappointments. Some will drop off while learning the basics of programming itself.

There are many me-too(s) and wanna-be(s) but unless sincere, unrelenting effort and hard work is put in, the game will just remain as a half-baked idea.

A good game design is also important. Not to discourage the OP or others who are interested, but have a look at the game designs from Al Lowe himself : http://allowe.com/games/game-designs.html, and see for yourself how much work is put into the game designing part.

Making all these come to life is the programming part. Those who are new to programming and would like to program games, usually end up programming basic stuff like temperature converter or things like that.

5476332566_7480a12517_t.jpgSB Dos Drivers