News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

How would you attempt a CPC game creator?

Started by Trebmint, 09:05, 12 July 10

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Trebmint

I've been pondering over the past few days how I would attempt to write a game creator for the cpc, and was wondering how other people would attempt to do similar. In fact I was trying to recall any serious game creator for the cpc and only really came up with things like GAC, Freescape and possibly Zack (never released)

In my head the best way to attempt such a beast would be to involve no programming for the user (unless they wanted), almost certainly a PC based application that creates snapshots which can run immediately via emulation. Mainly this is for speed, and potential to work across a team, and share resources. The central point of the creator would be an assembler so that plugins could be reassembled to make the style as compact and flexible as possible.

So how would you attempt this?

arnoldemu

#1
Quote from: Trebmint on 09:05, 12 July 10
I've been pondering over the past few days how I would attempt to write a game creator for the cpc, and was wondering how other people would attempt to do similar. In fact I was trying to recall any serious game creator for the cpc and only really came up with things like GAC, Freescape and possibly Zack (never released)

In my head the best way to attempt such a beast would be to involve no programming for the user (unless they wanted), almost certainly a PC based application that creates snapshots which can run immediately via emulation. Mainly this is for speed, and potential to work across a team, and share resources. The central point of the creator would be an assembler so that plugins could be reassembled to make the style as compact and flexible as possible.

So how would you attempt this?
Are the plugins intended for different types of games?

In terms of a game creator, a flexible way would be to allow the user to create a set of "timelines" and to package all the elements they need together in a project.

In the timeline you can put down events in time (check for key press, trigger animation, goto etc).
The editor would compile these into a form that the game code would run.

Here you would have lots of flexibility for the user to create what they want, but the downside is the "engine" executing these may not run fast on the cpc.

Depending on how you implement it, you either have to create almost all the tools (gfx conversion to cpc, map editors, game code to run it), or you could join together other tools with your own build system.

EDIT: There are probably enough tools out there, that you could choose to create a build system and join them together.
map editors, gfx converters etc...

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Trebmint

Quote from: arnoldemu on 10:04, 12 July 10
Are the plugins intended for different types of games?

In terms of a game creator, a flexible way would be to allow the user to create a set of "timelines" and to package all the elements they need together in a project.

In the timeline you can put down events in time (check for key press, trigger animation, goto etc).
The editor would compile these into a form that the game code would run.

Here you would have lots of flexibility for the user to create what they want, but the downside is the "engine" executing these may not run fast on the cpc.

Depending on how you implement it, you either have to create almost all the tools (gfx conversion to cpc, map editors, game code to run it), or you could join together other tools with your own build system.

EDIT: There are probably enough tools out there, that you could choose to create a build system and join them together.
map editors, gfx converters etc...

Yes the plugins would be for different game types in that you might have a variety of map display/collision engines and you choose which is appropriate, further down you might have different player or enemy plugins. For example a player plugin might be for plaform game where you can adjust speed and jump height, or you might have a thrust type plugin where its all rotation and gravity control.

The idea would be to mix dozens of self contained z80 routines with GUI controls tied to variables / anims and or events.

As for the tools I think a map/graphics/animation editor needs to be built in, in fact it needs to be all in one. Plus I like the idea of an online central resource for the projects so if you create a anim it can be uploaded and used by others. A central resource for plugins, graphics, tiles anims and entire projects to promote easy creation.

Targhan

Do you want to make a "universal" editor, which you can make *any* kind of game, or specific ones ? GAC is for adventure game, so is PJA (to be added to your list).
I wanted to spread my own kit to make "Orion Prime"-ish kind of game, as the scripting is quite evolves, but gave up, as I think no one would really use it...
Anyway, my opinion on your project is that it is completely & overwhelmingly difficult if you want to be able to create any kind of game, and at the end it will be too slow to have a nice arcade game, because fast games requires specific codes. Look at these spanish gamed, made with the same development kit. They are nice, but they can't do anything else than three sprites, no scrolling and background made of little tiles. Now look at a fast&furious game like Dead On Time : it has specifically made code. As "simple" as this game can be, I don't think it was an easy task to do... Nor do I think an editor, however good it can be, can achieve such result.
Targhan/Arkos

Arkos Tracker 2.0.1 now released! - Follow the news on Twitter!
Disark - A cross-platform Z80 disassembler/source converter
FDC Tool 1.1 - Read Amsdos files without the system

Imperial Mahjong
Orion Prime

Trebmint

Quote from: Targhan on 18:38, 12 July 10
Do you want to make a "universal" editor, which you can make *any* kind of game, or specific ones ? GAC is for adventure game, so is PJA (to be added to your list).
I wanted to spread my own kit to make "Orion Prime"-ish kind of game, as the scripting is quite evolves, but gave up, as I think no one would really use it...
Anyway, my opinion on your project is that it is completely & overwhelmingly difficult if you want to be able to create any kind of game, and at the end it will be too slow to have a nice arcade game, because fast games requires specific codes. Look at these spanish gamed, made with the same development kit. They are nice, but they can't do anything else than three sprites, no scrolling and background made of little tiles. Now look at a fast&furious game like Dead On Time : it has specifically made code. As "simple" as this game can be, I don't think it was an easy task to do... Nor do I think an editor, however good it can be, can achieve such result.

Initially it would be I assume limited to a small range of game types, but as plugins were added this would extend, and because they can be fairly specific I see no reason why speed should be a major concern.

Anyway i was just asking how people would attempt such a project from their own viewpoint? This is very much a idea

TFM

Well, IMHO, you should focus on one type of game. Really! It will be hard enough anyway.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Executioner

ZACK was actually almost completed, but there was no sound fx/music editor and very little room left in the 128K to implement it. Perhaps if I had known all the OO stuff I know now 20 years ago, I might have managed to get it all to fit. It does require some programming knowledge, but it's pretty basic stuff like CLEAR SCREEN, PRINT, MOVE OBJECT etc.

Trebmint

Quote from: Executioner on 13:54, 13 July 10
ZACK was actually almost completed, but there was no sound fx/music editor and very little room left in the 128K to implement it. Perhaps if I had known all the OO stuff I know now 20 years ago, I might have managed to get it all to fit. It does require some programming knowledge, but it's pretty basic stuff like CLEAR SCREEN, PRINT, MOVE OBJECT etc.

Yes Zack was an excellent piece of kit I remember well, and actually did some coding with it back in the day via my contacts with STS (Blimey what happened to that lot), shame it was never finished. Remember the Heli game looking rather snazzy. How did that language actually work, was it Pcode or actually compiled into z80.

Cholo

Other "game makers" i can think of is:
- 3D construction kit: 3D only?
- Genesis: but adventure only.
- The Quill (+the illustrator upgrade): adventure.
- Artist and Sprite Designer (Crl): basic sprite moving pack for use in basic.
- Laser Basic: also for use in your own basic programs. This one seems the most professional one (132 page manual).

Perhaps making a something a bit more simple like "shoot em up constuction kit" (like exist on Amiga) is less complex.

MiguelSky

#9
Sprites Alive add a lot of interesting features to BASIC game programming oriented (animation, collision detect...).

EDITO : Ah !! And TommyGun at http://www.users.on.net/~tonyt73/TommyGun/ joins various multisystem programing tools.

Executioner

Quote from: Trebmint on 17:15, 13 July 10
How did that language actually work, was it Pcode or actually compiled into z80.

It had a built-in compiler to create Z80. The language itself was tokenised so it compiled very quickly.

TFM

#11
Quote from: Executioner on 13:54, 13 July 10
... Perhaps if I had known all the OO stuff I know now 20 years ago, I might have managed to get it all to fit.

Really? I always had the impression that OO makes is slow and blows it up. Maybe the solution would be to use a CPC with more than 128 KB (or another OS).
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Gryzor

Quote from: MiguelSky on 21:57, 13 July 10
EDITO : Ah !! And TommyGun at http://www.users.on.net/~tonyt73/TommyGun/ joins various multisystem programing tools.

I had a quick look - exactly, TommuGun seems to be more of a programming tool than a game creator...

Trebmint

Quote from: Gryzor on 07:58, 14 July 10
I had a quick look - exactly, TommuGun seems to be more of a programming tool than a game creator...

Well yes Tommygun is an exceptional editor, but I think when developing such tools today you have to look at who you are writing for, and the truth is the numbers of people with the time and skills to write a z80 masterpiece from scratch (even if you have upto dat tools) is very small. The game creator I envisage is yes limited, but also visual and instant results, and simple to change from the samples. That way I hope to get a number of users, and with users will come additional plugins extending the range of games


arnoldemu

Quote from: Trebmint on 08:35, 14 July 10

Well yes Tommygun is an exceptional editor, but I think when developing such tools today you have to look at who you are writing for, and the truth is the numbers of people with the time and skills to write a z80 masterpiece from scratch (even if you have upto dat tools) is very small. The game creator I envisage is yes limited, but also visual and instant results, and simple to change from the samples. That way I hope to get a number of users, and with users will come additional plugins extending the range of games

Have you looked at platform game designer or arcade game designer? both of these are on the spectrum by Jonathan Cauldwell.

http://members.fortunecity.com/jonathan6/egghead/

Maybe this will give you ideas.

Looking at the worldofspectrum forums a few people are using them, but still the number of finished and released games is few.

I have been using z88dk, cpcrslib (+ my own patches and tools) to make blue angel 69.
It has made writing games a little more easier in some respects (e.g. coding in c is nice), but because blue angel is very gfx heavy, I am finding it hard to fit it all in the ram, but I am almost done).

For me, it's not necessarily a editor package that does the whole job, but more a good set of tools and build environment.

Maybe a poll would be a good idea, or just ask what people really need to make games then you can concentrate your efforts to fullfill those needs.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Targhan

I absolutely don't know what they look like, or how powerful they are, but two threads in Spectrum forum talk about :
Platform Game Designer 2 :
http://www.worldofspectrum.org/forums/showthread.php?t=28711
and Arcade Game Designer 2 :
http://www.worldofspectrum.org/forums/showthread.php?t=26175


Maybe it can help and give some leads... or maybe not :).

Targhan/Arkos

Arkos Tracker 2.0.1 now released! - Follow the news on Twitter!
Disark - A cross-platform Z80 disassembler/source converter
FDC Tool 1.1 - Read Amsdos files without the system

Imperial Mahjong
Orion Prime

Executioner

#16
Quote from: TFM/FS on 02:16, 14 July 10
Really? I always had the impression that OO makes is slow and blows it up.

Yeah, right. That must be why the whole industry has embraced it then! Seriously, if you implement OO correctly it shouldn't slow anything down much, and is usually a cleaner way of implementing complex functionality without loads of conditional code. Admittedly, the Z80 isn't ideal for OO, but it can do it.

QuoteMaybe the solution would be to use a CPC with more than 128 KB (or another OS).

Haven't we already determined that most people have 128K, not more.... In another thread. And ZACK doesn't use any firmware apart from maybe some AMSDOS calls.

mr_lou

Quote from: Executioner on 03:48, 16 July 10
Yeah, right. That must be why the whole industry has embraced it then! Seriously, if you implement OO correctly it shouldn't slow anything down much, and is usually a cleaner way of implementing complex functionality without loads of conditional code. Admittedly, the Z80 isn't ideal for OO, but it can do it.

I've learned that OO coding isn't the most optimal way of coding on limited platforms. Objects take more memory than primitives, and accessing objects rather than arrays with primitives are slower. At least that's how it is on the J2ME platform, which is why a lot of J2ME coders say that J2ME != JAVA
I don't think it means that much today with all the new high end phones, but a lot of J2ME coders still avoid OO coding to gain more speed and memory, because they still want their game to be compatible with older devices.

fano

To be honnest the main interest for software industry to use OO languages is productivity (and not always) , not speed or memory usage.
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

TFM

Quote from: mr_lou on 06:01, 16 July 10
I've learned that OO coding isn't the most optimal way of coding on limited platforms. Objects take more memory than primitives, and accessing objects rather than arrays with primitives are slower. At least that's how it is on the J2ME platform, which is why a lot of J2ME coders say that J2ME != JAVA
I don't think it means that much today with all the new high end phones, but a lot of J2ME coders still avoid OO coding to gain more speed and memory, because they still want their game to be compatible with older devices.

I agree totally!!! I had communications with a lot of programmers during my life. And the real good coders all say no to OO on samller systems. I fact OO make it slow and blows it up. Better use C then OOP.

Again and again people want to see advantages in OOP, but these "advantages" only exist on very quick and very huge systems, where you don't have to care about memory and speed.

People often don't believe this - year later they come crawling back  :P
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

robcfg

In my opinion (almost 11 years as professional game developer), OOP is suited for big or very big projects. I really cannot imagine the people at Epic making Unreal Engine 3 in pure C or assembly... mostly because of the immense size of the project.


OOP is also nice when it comes to isolate and reuse blocks of code, and modern C++ compilers do achieve very nice performance.


For machines like our beloved CPC, OOP is completely overkill, but hey! I also enjoy playing Bioshock 2 on my Xbox 360. They are on completely different leagues, and OOP is therefore more suitable to the bigger one.

TFM

Quote from: robcfg on 00:20, 17 July 10
For machines like our beloved CPC, OOP is completely overkill, but hey! I also enjoy playing Bioshock 2 on my Xbox 360. They are on completely different leagues, and OOP is therefore more suitable to the bigger one.

Yes, right! And in case you really want to use OOP on a CPC you should (like mentioned and misunderstood before) use a CPC with at least 0.5 MB RAM and maybe a hard-disc to run the game creater. The final game is supposed to run on an 128 KB machine, which can achieved a bit more easy: The game-creator uses RAM for itself and the game (currently under developpment or even finished), while the game needs only RAM for itself.

However, personally I never would use OOP on the CPC because everything I saw on CPC using OOP is relatively slow.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Executioner

I was hardly suggesting that I'd use J2ME to develop ZACK, or write a pure OO compiler, nor use C++ for that matter. I didn't even suggest using any form of memory management, simply that OO constructs would have been of great benefit to ZACK, rather than code that goes:

If it's a button then draw this else if it's a menu then draw that else if it's a scroll bar then draw something different else if it's a label then draw the text...

If it's the File menu then do this else if it's the View menu then do that....

I find it quite amusing that anyone would consider using a C compiler on the CPC, yet they wouldn't consider using any OO constructs in assembler.

mr_lou

Anyway... if you're making a game-creator, to be run on PC, then how about implementing options to compile for multiple platforms?  8)

Trebmint

Quote from: mr_lou on 05:14, 21 July 10
Anyway... if you're making a game-creator, to be run on PC, then how about implementing options to compile for multiple platforms?  8)

Yes I have thought about this, but I don't want to make a CPC game creator that makes spectrum ports. Although code for game control and play wise could be virtually identical, the engine code would have to have similar specs and that would drag the CPC down I feel.

Due to the nature of how I'm going about this I expect that cross compilation is a probable outcome, but that the same project on a different machine will look very different.


Powered by SMFPacks Menu Editor Mod