View Full Version : Free start...
Druidblue
07-25-2006, 07:04 PM
If one were, say, limited to a budget of 0 (nil), for books and other resources, what language(s) would be recommended to learn from the start (with multimedia development experience) for creating basic turn-based style games and/or word puzzle type games?
I've been told in the past BlitzMax would best serve my needs. That's, what, 80-100 ish, right? So ignoring that until I find someone's wallet, what would be suggested to look at?
I have Flash MX (kind of), so I can always poke at that, but I've never seen a turn-based (really, really basic) Civ-type game made in Flash. Would java be a good choice? It seems like all the items needed for java development are free for download, unless I'm unaware of something.
Any suggestions/advice? (Other than get a job, if it were that easy, I would! :p)
Rebrehc's Industries
07-25-2006, 07:08 PM
You can download all of the Express versions of the Visual Studio stuff from Microsoft for free. That will give you several more languages to pick from. Then you can work in whichever makes the most sense to you, or has the best online resources for you to learn from.
What do you have experience programming in? If you have no experience then I recommend Game Maker and RPG Maker, which are both free, have a large user base and examples of commercial use.
Alternatively, you can get a 30 day demo of Flash 8 for free. If you can finish a game in 30 days then you're all set. Although you may want a 3rd party tool for your projector files.
impossible
07-25-2006, 08:08 PM
If you want to mess with Java development. I recommend Processing (http://www.processing.org"). Another good option would be Python (http://www.python.org) with Pygame (http://www.pygame.org). If you want to make turnbased games you might want to make some webgames using PHP. There are some fun turnbased games made with Flash. Nothing like Civ that I know of, but dice wars (http://www.gamedesign.jp/flash/dice/dice.html) and the Grow games (http://ww.eyemaze.com) are very fun turnbased games.
Druidblue
07-25-2006, 09:47 PM
Thanks for the input all.
No game development experience here, but I was a virtual reality and multimedia developer. I took C and a few other languages growing up, but never used them professionally- all my work was done in niche programs like Toolbook and Authorware with scripting, although the VR was done using an OOP language very much like C++.
Definately not looking to make any majorly complex thing at first, probably will work on a word/language game first, but eventually I'll want to do something on a far smaller scale than Civ- I use that as a bad example only (bad in the sense of it giving too large a scope!)
I'll take a peek at some of the options I haven't considered here you've provided, see if any fit good. Once I get some income (any income, not specifically from game making) I'll have far more freedom to persue things, but that's not happening soon (it's already been 3 1/2 years as is!)
Thanks again!
whisperstorm
07-25-2006, 11:59 PM
Try openlaszlo - you get a free server / client solution that you can deploy just about anywhere and you can create some very interesting applications with out alot of programming skill -- its basically xml and some javascript.
http://www.openlaszlo.org/
http://www.openlaszlo.org/demos
For an example of an openlaszlo application , try pandora.com and check out their player.
No one as yet has figured out that this would be an ideal platform for casual games but It has all the capabilites -- animation, sound, server side components, etc.
Polycount Productions
08-03-2006, 02:31 AM
See also: http://www.devmaster.net - it contains plenty of engines (prices ranging from free to expensive). I'm sure you'll find suitable one for you.
Lucretia
08-03-2006, 09:10 AM
If one were, say, limited to a budget of 0 (nil), for books and other resources, what language(s) would be recommended to learn from the start (with multimedia development experience) for creating basic turn-based style games and/or word puzzle type games?
I've been told in the past BlitzMax would best serve my needs. That's, what, 80-100 ish, right? So ignoring that until I find someone's wallet, what would be suggested to look at?
I have Flash MX (kind of), so I can always poke at that, but I've never seen a turn-based (really, really basic) Civ-type game made in Flash. Would java be a good choice? It seems like all the items needed for java development are free for download, unless I'm unaware of something.
Any suggestions/advice? (Other than get a job, if it were that easy, I would! :p)
Hmmm, tis a tricky ne this as it tends to throw up a lot of problems/flames ;-)
Anyways, it depends on what you want to do. If you want to follow the crowd then go for C/C++. As it seems you've already learn't at least C, I'd suggest relearning it anyway.
If you don't want to go with the crowd and want:
1) A readable language that isn't going to cause problems when you come back to the source in 3 months time.
2) Want to spend most of the time programming rather than debugging.
3) Forces you to produce good designs.
4) forces you to programming correctly.
5) Expands as you learn more.
6) Has multitasking support built into the language.
I'd definitely say a strong type system is good for the programmer as it catches all values that are out of range for a type either at compile time (literals) and run time (variables). Also, Ada has some nice features which make debugging a bit better, like being able to convert an enumeration into a string and vice versa (for printing). Also using a for loop on a range of values, like the array range can be programmed in a way that never breaks:
type My_Range_Type is new integer 5 .. 10;
Some_Array is array (My_Range_Type) of integer; -- An array doesn't have to start at 0.
...
for Index in My_Range_Type'Range loop
Some_Array(Index) := 0; -- This will place a 0 into every element of the array
end loop;
Then I'd suggest learning Ada95 and use the FSF GNAT compiler (free and can be used commercially, unlike the GPL GNAT*).
The downsides are:
1) There's a lot of typing to get something done.
2) It's OO is not like anything you've used before.
3) Ada95 doesn't use the dot notation, i.e.
operation(object, params)
rather than:
object.operation(params)
4) The book that gets touted is by some bloke called Cohen and it's very expensive (£65 in UK IIRC), but it is supposed to be the best book. It's possible to learn online and by buying a cheap book. I learn't Ada at uni and got a book that's half the price but I still use it.
5) You will still need to learn C (at least) as there will be libraries you will need to create bindings for - if they don't already exist.
I have some example code using SDL/GL/Ada95 which compiles under both Linux and MingW32 without any #ifdef's (it just works): here (http://www.geocities.com/munkee_chuff/gl.html).
You can get more information on irc.freenode.net #Ada as well.
Thanks,
Luke.
* The GPL GNAT is a new version which covers the new specification (Ada 2005) which introduces a number of nice new features, the dot notation being one of these. But this compiler cannot be used for commercial purposes unless you buy an expensive licence from AdaCore.
HairyTroll
08-03-2006, 01:13 PM
Common Lisp (http://en.wikipedia.org/wiki/Common_Lisp) is something you should consider learning. It is sufficiently different to most languages out there that most people instinctively dislike it. Most people don't understand why Lisp is so powerful, they see the parenthesis and freak out. C/C++/Java/C# force you to change the problem in order to fit the the language. Lisp lets you evolve the language to fit the problem. It's a very different way to develop software.
The results of writing a game in C/Java/C++/Blitz Basic/C# etc are, obviously the (a) game (hopefully), and several by-products that may include (b) utility libraries or even (c) a full blown engine.
The results of writing a game in Lisp are, (a), (b) and (c), but also if you do it right, (d) a language that is designed for writing games.
For a good intro take a look at Casting SPELs in Lisp (http://www.lisperati.com/casting.html), a 'cartoon' that describes how to write a text adventure game in Lisp.
As an example; I want my 'actors' to be controlled by a state machine; state machines are pretty standard constructs in computer science. So in Lisp I created my own mini DSL (domain specific language) for writing state machines. The state machine is contained within the (WITH-STATE () ...) code below, which is evaluated once every frame. An overview is as follows:
The fly always starts out in the START state. In the code below, the START state immediately transitions to the MOVING state.
In the MOVING state, the possible transitions are back to MOVING or to SQUASHED.
We transition back into MOVING every 1 second, updating the position of the fly to a random location.
We transition to SQUASHED when we receive a SQUASHED-EVENT. Change the image to a squished fly, decrement the jump interval, and update the score.
In the SQUASHED state, the possible transitions are back to MOVING.
We transition from SQUASHED to MOVING after 1/2 a second. We change the image back to the fly, and we jump to a random position.
The state machine DSL below does a number of things behind the scenes that the programmer never has to think about:
Automatically create, increment and manage all timers/counters in the DO-AFTER and DO-EVERY tests.
Register for specific events when entering a state.
Unregister events when leaving a state.
Setting the current state after transitions.
(defscript (control-fly)
(init ((jump-interval 1000)
(wait-after-squashed 500)
(max-x 320) (max-y 240)))
(with-state ()
(start (t moving))
(squashed ((do-after wait-after-squashed) moving
(set-image 0)
(set-position (sdl:random-point max-x max-y))))
(moving ((when-event 'squashed-event) squashed
(decf jump-interval 100)
(set-image 1)
(notify (make-instance 'score-event :points 1) 'score-event)) ; And add to score
((do-every jump-interval) moving
(set-position (sdl:random-point max-x max-y))))))
vBulletin v3.6.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.