Domain: allegro.cc
Stories and comments across the archive that link to allegro.cc.
Comments · 38
-
And to think that six years ago...
...I I mentioned in a forum that "Multiplayer is actually the best way of not programming a good AI."
-
Re:You must have missed the Go specification...
it's also true that this offers some design flexibility that you can't get in C++.
Wrong. I can do with C++ the same design flexibility, including "dynamic" programming ala Java (that's what C++ was before templates) or dynamic programming ala Objective-C.
it seems like they're aiming more for convenience and rapid development speed.
Go is not interpreted.
Python or Ruby mode (languages even more dynamic and less type safe than Go), you can still write safe code.
You can even write safe code in raw assembly. So? not a point. The type safety C++ gives you increases the development speed. If Go was interpreted, you may had a point. Since it's not, I don't see any advantage over C++.
I just want to point out that there are positives there too
Yes, there are. The imports and the garbage collection. But they are not enough to justify a shift to Go.
As for your 30 LOC Gochannel... don't forget that a Goroutine is not just a thread. Multiple Goroutines are multiplexed across many threads and the Gochannel.
I have just posted a Queue C++ class here. It can be used from as many threads as you like. It's totally thread safe. It's 36 lines of code.
-
How I learned
My Dad was/is a programmer, and I always wanted to make games. I started trying when I was 11, trying to use engines and toolkits like rpgtoolkit , 'Custom' and a few others. There's a big list here: http://www.ambrosine.com/resource.html
The problem was, they couldn't do exactly what I wanted, so I was always trying to use their little scripting languages for things they were never intended for. I always thought programming would be too hard though, and maybe it would have been at that time. I don't know. But when I was 13 or 14, I did learn C++, my first language. Basically, I just learned it from a big book my dad has. First I went part of the way through 'Instant C++ Programming' by Ian Wilks, and then I sopped learning for a while, and came back using 'The Waite Group's C++ Primer Plus' by Paul Snaith. C++ Primer Plus is a much better book, because it's newer, and teaches OOP better and stuff, but Instant C++ Programming might have been better for starting. For example, the C++ Primer Plus didn't even teach about if statements until the 5th chapter! So I was using 'while' loops, not to loop through stuff, but in place of if statements, because I wanted to use conditional stuff. But anyway, that's how I learned - just using the book, and trying to make games. I wanted (want) to make a big RPG. So, I started off with a VERY simple text based game, where if you pressed 'm' then 'Enter', it attacked in melee, 'M' and 'Enter' attacked with magic, and 'b' and 'Enter' attacked with a bow. You got experience for using each of those, and different stats went up or down depending on which you used most. I was
/very/ ready for graphics by this time, even though I didn't even know about C++ classes yet, so I started using allegro. I began by simply using it to output text in a full screen environment, and enjoying being able to do stuff with single key presses. I then drew my own font to use for tiles, and then dropped that and began work on a space shooter game with my older brother. He still does most of the graphics and planning for our games, while I do all of the programming. We actually almost completed the engine for that game, but before we did, we moved back to what we /really/ wanted to make - a role playing game. I was able to start it knowing much more about both C++ and allegro because of the previous things. And that's where I am now. So far I've written about 13,000 lines of code on it. Unfortunately, now all my time is spent doing web development with my other older brother. All the C++ definitely helps me to learn anything new. I think it's definitely still my favorite though. ...and I'm only eighteen...I guess in short, I was inspired to program because I wanted to make games, and I didn't want to be limited by using toolkits.
-
Nobody would care, most likely.
I make video games and release them under the GPL. Hardly anybody cares. There are plenty of BB programs out there already. The world doesn't need another one. Same goes for my video games.
I also make music and release it for free. Hardly anybody cares, because there's plenty of "free" music out there anyways.
If you don't think that your code is really all that grand, just quietly release it and hope it somehow finds a place in someone's heart. The few comments you get about it are still nice to have.
-
Re:Rewind 2 years
Indeed. Two years ago, I pointed in a thread somewhere else that it was a blow directed to the mind. When I saw it, I was boggled for a few seconds, and then it clicked. Apparently, it has clicked on 10 million others as well.
-
Re:Clumsy, unintuitive and buggy
Just take a look to this as an example to how frustrating, clumsy and unintuitive C++ can be.
http://www.allegro.cc/forums/thread/552652
A dozen of forms to write the same simple task and none of them and the most intuitive is incorrect and a dozen more that leads to memory fragmentation or memory leaks.Really? I found this snippet, which was how I first thought to write it (I cleaned it up a little bit):
#include <utility>
std::pair<int,int> get_coord(int num)
{
return std::make_pair(num/30, num%30);
}How much more intuitive can you get? You want to return a pair of ints. So say so. And then use make_pair() to do the heavy lifting. Doesn't get much simpler, does it? Now, I know what you are hinting at. Yes, being able to have real support for multiple return values is something that C++ is missing. I do regard it as an advanced topic though; in most cases (like the above) wanting to return multiple value is a sign of bad design. In the above case, the programmer should have returned some class representing a coordinate. Possibly derived (privately, of course) from std::pair.
But look the new C++09.
http://en.wikipedia.org/wiki/C++0xI have looked, and I am mostly thrilled. Getting operator. and operator.= will lift the language quite a bit, as will the typeof operator, making a better lambda() possible. operator.= (assignment to member variable) will be useful to any newbie. Lambda is for people who know what they are doing.
It is a montruosity of language. It will be even more unintuitive, harder and frustrating.I do not find it so --- it's a hard but powerful language. If it's too hard for you, pick one of the dumped-down versions (Java, C#) or better yet, pick a language that is just more suited for your task, sacrificing power for generality.
My fellows are not programmers, they are mathematicias and engineers. I am the only one who has a little knodlegde to make an average robust code, but I am still making embarrased mistakes. In my job I had a whole week wasted because someone made a memory leak.
I am a mathmatician, but also a fairly experienced programmer. However, novice programmers and expert languages are not a good mix. Why not use a language geared at mathematics? Perhaps octave?
Bjarne Stroustrup said that we should not relay on propietary languages. In the future, while propietary languages will be incompatibles, certainly and he promise, C++ will be still there.
Well, true enough, but hardly the point I was trying to make. Anyway, there are tons of non-proprietary languages.
I see another future!. I see Bjarne Stroustrup is retired and fishing in a lake and the whole old school with him. C++ slowly abandoned without ceremony while the fresh blood are programming in C# using
.Net technology.C++ has been with us for a long time, and is still quite popular. But who knows? Maybe the functional languages like Haskell or Lisp will finally make it. Or something else. C# is a Java clone from what I hear, but more like C++? I regard both as Fortran replacement. There are too many aspects that a dislike on C#, but. Hey! Out of there, there are real people with real jobs that need their work done. At this moment C# is a light year beyond. In least than five years of existence of
.Net there is a 3.0 version coming and everybody programming in C#.Had a bit too much propaganda there?
:p I thought to look into Mono someday, just to round out my skills a bit, but I prefer to keep my real jobs in real languages. At the moment, that would be C++, ruby and perl, dependent on the task.No matters how we cry out about the devil strategies of M$
-
Clumsy, unintuitive and buggy
Just take a look to this as an example to how frustrating, clumsy and unintuitive C++ can be.
http://www.allegro.cc/forums/thread/552652
A dozen of forms to write the same simple task and none of them and the most intuitive is incorrect and a dozen more that leads to memory fragmentation or memory leaks.
But look the new C++09.
http://en.wikipedia.org/wiki/C++0x
It is a montruosity of language. It will be even more unintuitive, harder and frustrating.
My fellows are not programmers, they are mathematicias and engineers. I am the only one who has a little knodlegde to make an average robust code, but I am still making embarrased mistakes. In my job I had a whole week wasted because someone made a memory leak.
Bjarne Stroustrup said that we should not relay on propietary languages. In the future, while propietary languages will be incompatibles, certainly and he promise, C++ will be still there.
I see another future!. I see Bjarne Stroustrup is retired and fishing in a lake and the whole old school with him. C++ slowly abandoned without ceremony while the fresh blood are programming in C# using .Net technology.
There are too many aspects that a dislike on C#, but. Hey! Out of there, there are real people with real jobs that need their work done. At this moment C# is a light year beyond. In least than five years of existence of .Net there is a 3.0 version coming and everybody programming in C#.
No matters how we cry out about the devil strategies of M$ and the poor performance of its products. That M$ blah...blah.... Every one will be dancing under M$ song. This time they are doing damn good well.
And if the Linux community still relay in C++ as their main language the community will be knocked down before knowing who strikes you. In this world we should think fast, move fast or your are obsolette. C++ is still there because of its enormous inertia. But it is a dying language. -
Re:K&R2
Regarding game programming, I should also mention Allegro, and allegro.cc.
-
Sounds familarThis sounds a lot like the Allegro SpeedHack Competition.
The annual SpeedHack competition has been around for six years already. The only difference is 3 days vs. only 1 day.
-
Overgod
I've mentioned this before on these pages, but I recommend you wander over to www.allegro.cc and download a copy of Overgod, which is a really sweet, retro-flavoured cross between Asteroids (game) and Tron (film). It's one of the few games to have really grabbed me since ye olden days playing games on my Spectrum.
:)
-
Re:For those who'd like to give it another go
better link: http://www.allegro.cc/depot/ZeldaClassic/
The parent's link makes me wait 11 minutes :\ -
Re:Screw books
I agree completely. The best way to learn to make games is just to do it. I recommend starting out with a scrolling shooter type of game, since they're pretty simple to write. You don't have to make your characters stand on the ground and not walk through walls and such. Make simple games first, until you get the hang of mapping controls to screen movements in an effective way, making enemies seek the player just right, and all the other fundamental tasks involved in constructing a game. The most important thing is to get some stuff moving around on the screen as soon as you possibly can. Writing games often seems much harder than it really is. I haven't worked with SDL, but I've had a good experience with Allegro (http://www.allegro.cc/).
-
Re:What ever happened to 2-D graphics?
Allegro ( here ) does allow you to do this (blitting sub-rectangles, as well as hardware sub-rectangle blitting, I do it for my triple buffering system right now) and is cross-platform as well.
-
Chaos clone for Windows
A Windows-based clone of Chaos called Chaos-Funk can be downloaded here.
-
Re:Allegro
Actually, Allegro's official homepage is http://alleg.sourceforge.net/ Allegro started off on DOS, but there are now fully fledged ports to Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows, QNX, BeOS and MacOS X. One of the differences between Allegro and SDL is that Allegro is a higher level library than SDL, meaning that it takes less code to accomplish certain tasks at the expense of some (but not much) control. Also, there's more to Allegro than SDL (such as data-file managment and a GUI, although the Allegro GUI looks awful, but you can substitute your own GUI). In fact, there's even been talk of porting Allegro over to SDL so that it runs on top of SDL. Allegro is truly excellent for 2D games. It's built in 3D is somewhat lacking, but there's a tweaked version of OpenGL called AllegroGL available that lets you use some OpenGL functionality within Allegro. An example of a game written with Allegro is this re-make of "Head over Heels". It's an Isometric 3D game featuring shadow casting, real-time lighting and transparency. Sound, graphics and coding are done by professionals in the gaming industry. Allegro is a Sourceforge project and the development is very active. Some of the core developpers have jobs in the industry and work on Allegro in their spare time. In fact, an Allegro community has sprung up and can be found on the following website: http://www.allegro.cc. As well as many lively discussions, there's also a vast collection of projects written using Allegro and other members of the community get to rate the projects.
-
Announce the Obvious
I just had a conversation about this topic with one of my co-workers: Seems Microsoft just lets new software markets run until a clear victor is decided by the end users, then they completely redo it and destroy the competition taking the valuable ideas from the previous victor.
One way to go is to cross-platform develop. Most of the development I do is for games and as such I use allegro:
http://www.allegro.cc/
If you go to the site you'll see plenty of mediocre games, but once you realize the power and dev-friendliness behind the allegro library you'll be hooked.
One could create an OpenGL accelerated game (using AllegGL) without changing a line of code! Realistically, you would want to change some code anyway, but everyone interested in game development should check it out.
The only thing it's missing is a bonified network library. It has some out there, just none that I would consider complete or complete & useful.
Can't wait to finish the game and then release it for DOS, Windows 98, ME, 2K, XP, Linux -- possibly Mac and even BeOS! (stability issues with the last two, I believe.) -
For the long term....
You can direct them to Allegro (http://www.allegro.cc), or even pygame (http://pygame.seul.org) if they show an interest past your class. Both of these packages can be set up in Win32 (with some work), and are a great start in C/C++ and Python development. They're free, use free compilers, don't require too many additional libraries/includes, and they have excellent example programs the kids can play with/learn from. They also have support forums geared to beginners, and have very friendly followings willing to help newcomers.
SDL (http://www.libsdl.org) and Java (http://java.sun.com) are less optimal choices. SDL requires a ton of includes, and someetimes has a tricky compiler setup. Java doesn't have terribly much support for game programming, and doesn;t have a great game-support community.
Granted, they're not Klik and Play type programs, but it's useful to know about these things in case a student wants to continue their learning on their own.
-
Re:2-D Engines?Try Allegro. It is a 'Giftware' cross platform gaming library. It is mostly for 2D graphics but it has a few 3D functions and there are many 3D add-on packages. The library has been around for a while, is in active development an even has a lively community. To quote the blurb from the site:
Allegro is a game programming library for C/C++ developers distributed freely, supporting the following platforms: DOS, Unix (Linux, FreeBSD, Irix, Solaris), Windows, QNX, and BeOS (MacOS port is in alpha stage). It provides many functions for graphics, sounds, player input (keyboard, mouse and joystick) and timers. It also provides fixed and floating point mathematical functions, 3d functions, file management functions, compressed datafile and a GUI.
-
yeah, there is an indie gaming underground
but like all other "under ground scenes" it';s hidden, and the good stuff is hard to find. Any people listen to indie music out there? You guys know what I'm talking about, you have to shuffle through loads of crap to find one gem....but damn, that one gem is fantastic.
indie gameing sites (warning 90% crap! But, RPGDX has a good reviews system, so look for the highest reviews....)
RPGDX
Dark Dreams
Allegro Games Depot
Madmonkey -
Allegro is a multimedia app toolkit
Allegro and SDL aren't application toolkits.
SDL may not be (doesn't even have drawing primitives), but Allegro is much closer, provided that the application falls into the 2D or 3D multimedia domain. For example, Allegro includes its own Unicode implementation and its own file access API (to allow transparent use of compressed datafiles). It also has a wealth of addon libraries including AllegroGL for hardware accelerated graphics. Check it out.
-
don't forget Allegro
check out Allegro... Allegro is a multimedia library for Windows, Linux, Dos, BeOS, MacOS etc.
-
allegro
I'm still waiting for the Allegro C/C++ games library to be included in a major distro. It's in version 3.9.37 now, with 4.0 just around the corner. It's a wonderfully solid and complete gaming library. Zero code changes needed to compile games on numerous platforms. Once I tried this library I never went back.
-
Allegro - an alternative game library.Allegro is another good game programming library.
It is a bit more high level than SDL, providing functions from mouse & joystick access to MIDI and sound output, many different hardware accelerated blitting and drawing operations, interrupt driven timers, support for packed data, 3D math routines, and more. It is also ported to a lot of different platforms, and there are a number of add on libraries (including OpenGL rendering).
It's been around for a number of years, but developement is still going strong.
The allegro.cc site is a good resource for add on libraries and community news.
-
Have you ever tried SDL?
Actually, I kinda wish somebody would implement something like DirectX for Linux
Have you ever tried coding in SDL? It's a cross-platform 2D game library with graphics, input, and sound support.
What about Allegro? It's another cross-platform 2D game library, used by scores of free games such as Tetanus On Drugs. It also has a 3D addon that uses your platform's existing OpenGL support.
-
More games that would have run on Indrema
Yeah. Tux Racer. Smiletris. Kickin', man!
Pingus. FreeCiv. Tetanus On Drugs. Scores of games at Allegro.cc. The whole NES, Game Boy, Genesis (INCLUDING Zero Wing), and SNES libraries (through emulators).
However, I feel sorry for the person whose first game programming attempts ever have to be in C.
And Basic is better how?
-
In here, I plug Linux games.
LINUX IS NOT READY FOR GAMES, not yet. Name a game that you can just install and start playing without touching any config files.
Once you have the Allegro library installed from source tarball (./configure; make depend; make; su -c make install), you can run any free Allegro game such as freepuzzlearena, TOD, or scores of others. There are also emulators to run other platforms' games (such as TuxNES and SNES9x).
All your hallucinogen are belong to us. -
(OT)JNap cross-platform?
JNap only runs on Java platforms. Sun provides the Java platform (J2SE) only for Microsoft Windows 9x, Microsoft Windows NT/2000, Solaris for x86, Linux for x86, and Solaris for SPARC. A C program can be more cross-platform than a Java program; just look at any application or game written with the Allegro library.
But I may try it out, as the latest official Napster client can no longer connect to OpenNap servers.
Like Tetris? Like drugs? Ever try combining them? -
Open-source games
Ever heard of a good opensource game? Freeciv? LOL.
What about TOD? or Hampsterdeath? or Tux Racer? Or any of the many cross-platform Allegro games? Or the entire GNOME Entertainment collection? I forgive you for not having looked hard enough.
Tetris on drugs, NES music, and GNOME vs. KDE Bingo. -
Games _come_ with Linux.
Well, most GNU/Linux distributions come with a sh*tload of games in both GNOME and KDE. And they often have higher fun factors than Fake III Arena or whatever FPS-of-the-month the sheeple are buying. Also, most Allegro games (such as TOD: Tetanus On Drugs and freepuzzlearena) recompile seamlessly on Linux.
Tetris on drugs, NES music, and GNOME vs. KDE Bingo. -
(OT)Other DJGPP games
It's common knowledge that Doom and Descent were built with Watcom, and Quake was built with DJGPP, but have you seen the Depot? Or PinEight.com? Lots of cool DJGPP stuff.
<O
( \
XGNOME vs. KDE: the game! -
Over 1000 Eunuchs-compatible games
- Many of the games at the Allegro Games Depot recompile fine on GNU/Linux, FreeBSD, and UNIX® systems, provided you install the Allegro library.
- Want Tetris®? You won't get it, but you will get an exact clone along with six other games in freepuzzlearena. (This also needs Allegro.)
- Head over to Zophar.net for an NES emulator to run on your GNU, BSD, or UNIX system. Grab some free(beer/speech) software here and here. If you're not satisfied, get some i11ega1 ROMz at Tobbe's.
<O
( \
XGNOME vs. KDE: the game! -
all we need is intergration
I downloaded Crystal Space about an hour ago, and have been playing with allegro for some years.
Though both of these are fairly good GFX engines I have yet to see good integration with games engines, and porting between the to would be a nightmare.
If interfaces between GFX engines (Crystal Space does support plugins), AI,rules and scripting languages were standardised, open source game development could be onto a real winner.
-
Or a portable wrapper _around_ DirectX?
There's a portable wrapper around much of DirectX. It's called Allegro. It supports nearly everything popular that runs on x86 (DOS, Windows, GNU/Linux, BeOS) and other hardware (the X11 version supports linux-ppc, Slolaris, HockeyPUX, AIX and Pains, etc.) but does not support Mac OS because none of the developers has a Mac to code on. And there are lots of games written for Allegro, including all of mine.
-
Allegro-based games for GNU/Linux
Who says there's a lack of games for the GNU/Linux system? Probably critics who have never been to the depot. Or you can click my Home Page link or signature.
-
ObFreeSpeechFreeBeer
Though I must say I hate all that shitty windows shareware. Like who wants to pay $15 for a piece of shit.
There's lots of freebeerware and free software. Point your browser to the Depot to see a sample of free games that run on Windows (mostly in DOS not-emulation; many are portable free software and can be recompiled for Windows), or you can come.to my page and... -
Allegro kicks [shift]244[/shift]
You said it, Kev. I'll add that Allegro doesn't need a lot of setup code (just four lines; this is a _big_ factor in producing proof-of-concept demos), and it's not limited to fullscreen DirectX (i.e. you can make non-game apps with it).
To see some of my work with Allegro, go here. To see everybody else's, go here.
-
Like Allegro.
Allegro is a cross platform game API maintained by Shawn Hargreaves, who used to work at Acclame. Write once, compile for DOS, Win32, Linux, a few other Unix-like systems, and BeOS. There are lots of games made with Allegro, including several by yours truly.
-
Re:Hmmm...
you're hard-pressed to find a anything in both DOS and Windows, including games
You haven't been to the Depot lately, have you? Because there you can find a whole bunch of games (like freepuzzlearena).
You've had enough /. haven't you? Isn't it time for