News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_ukmarkh

Help for people who want to make new games?

Started by ukmarkh, 09:37, 15 February 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ukmarkh


This is not a plug, in fact hopefully, you can help me in one way or another to bring this and other peoples ideas to life?


I'm looking for a programmer, artist and someone who can do sounds and music, if that's not possible, then all I ask is for some guidance and recommendations on how best to achieve such a mammoth task. 


I can definitely do the graphics, but I know there's people within these walls who can do better, programming on the CPC would mean learning from scratch, music I could probably work out, as I'd just copy something from the TV series, stuff already out there.


Guess I'm just looking to go on a journey and document it as I go in order to bring my idea for a game one step closer to reality and to help others who have fantastic ideas to the table.


Your help would be very much appreciated, and who knows, this could be a game that goes down in CPC history ;-)   


If we could talk and debate withing this post about ideas, tools, techniques people have already used, how to get a slightly off center pseudo 3D star-field moving at a fair pace, I'm all ears.


Thanks in advance...


https://classicreplay.blogspot.com/2017/02/lightspeed-how-can-i-make-this-game.html



sigh

Not sure what type of your game your making but those graphics look YUMMY!


I think one of the things that can really help is to create an animated version of your game so that the programmer has an idea of what you want.
Another reason for doing this is that you end up finding game design flaws, as your pretty much creating a non playable demo that has to make sense in the real world. I found that doing this on the beat em up was very helpful and although it took me an extremely long time to complete, I think it gave the programmers (arnoldemu and Munchausen) a clear idea of how the game is supposed to play and feel. Of course, things could change due to limitations but it's well worth doing. It also helps to see and prepare for what is and what isn't possible at an earlier stage and trim down foreseeable problems early on.


In regards to music - I have a whole batch of tunes I've hummed into a microphone for the beat em up that I would like to create. Unfortunately I have no idea what tools are used for those so McKain is your man for that one.

Sykobee (Briggsy)

The fast animated starfield effect will be difficult if it matches that screenshot, even if each 'streak of star' is handled as in the game 'snake' (add at head, remove at tail). However it looks interesting enough I'm sure someone will have a go. Otherwise there's always the 'pixel per star' option. Or scaling the size of the enterprise as it moves into the screen.


For the battles, it might be nice to switch in a static background - asteroids, planet, stars/nebula, etc. These could be chosen from where you are in the galactic map?

sigh

Quote from: Sykobee (Briggsy) on 14:23, 15 February 17
The fast animated starfield effect will be difficult if it matches that screenshot, even if each 'streak of star' is handled as in the game 'snake' (add at head, remove at tail). However it looks interesting enough I'm sure someone will have a go. Otherwise there's always the 'pixel per star' option. Or scaling the size of the enterprise as it moves into the screen.


For the battles, it might be nice to switch in a static background - asteroids, planet, stars/nebula, etc. These could be chosen from where you are in the galactic map?


For the starfield, wouldn't vectors do the trick?
Alternatively, you cheat and have an animated lines that scales down, though I'm not sure how intensive that would be as you would need a few of them at different angles.

roudoudou

Very easy on gx4000 with color cycled animated background and hardware sprites... Hardest part will be the multidirectionnal scrolling to change the perspective
My pronouns are RASM and ACE

SRS

I recommend cpctelera and c for development. you have most routines you need ready to use and well documented. even with examples.

I would like to support with testing or looking at source for some optimization. Or a german translation.

To start: here is your 3d starfield (kind of) -> http://www.cpcmania.com/Docs/Programming/3D_Starfield.htm


ukmarkh

Quote from: SRS on 20:53, 15 February 17
I recommend cpctelera and c for development. you have most routines you need ready to use and well documented. even with examples.

I would like to support with testing or looking at source for some optimization. Or a german translation.

To start: here is your 3d starfield (kind of) -> http://www.cpcmania.com/Docs/Programming/3D_Starfield.htm




First of all, thank you all for responding...


That's awesome, thank you, now if I could just move the center point slightly to the left and up, that could work really well. Is there a way to slightly lengthen the stars coming towards the screen, to signify warp drive, only needs to happen for a few seconds. The ship won't actually move, maybe just shudder slightly on impact of projectiles and enemy laser fire. As seen in the screen shots, it's important that the ship is seen pointing slightly offset and to the left, with the starfield coming at the screen at a slight angle. Maybe I could put together a crude animation just to be on the safe side. 


So far I'm thinking approach McKain for the Music, this will be important for the start of each episode, and during battle, no music whilst flying about, unless danger nearby. I really like his style, but obviously he might not be able to lend a hand.


The other information about tools to use looks very interesting, especially as many appear to have trodden a similar path. Please keep the tips and information coming.


Can I tempt anyone to help with the programming, graphics and sound? ;-)




Puresox

Hope a good development arises .  It would be great to see games that truly represent what a better machine the CPC really is. The image of the CPC is weighed down by Speccy ports.
I

Shining


As a big Star Trek fan and longtime cosplayer and fanclub-member I'm really interested in seeing this on CPC.

Some thoughts about the Starfield:


Quickly thinking about this, here are 3 examples how to achieve this:


1) You use something like SRS suggested: An algorithm who calculates the stars and draws them to screen. This is very time-consuming (speaking about calculating time of the Z80) and if you want a good effect and do something else (music, shooting) on the screen, it will be a big task.


2) You precalculate the starfield-effect. You make a table in memory where for each frame is written, which byte to change (best using direct screen adresses). I'm doing something simillar at the moment for a demo and this is quite fast.


3) Imho the fastest way to achieve such a starfield effect would be to cannibalize some colours. Speaking about mode 0, when you paint your ships etc. lets say with only 10 colours  + black, you have 5 inks left. Now you paint your starfield with this 5 inks and change their colours to something different or black. I think this solution could provide a very good effect and is super-fast.


For me, it is not clear at the moment how the game works. What has the player to do ? Also, when you search someone for programming, gfx ans sfx. What is your task then ?


I'm interested in this but more informations ae highly apprechiated.....




TGS is back

Download my productions at:
cpc.scifinet.org

keith56

#9
Sounds like you have a plan! - I thought i'd offer my 2 cents of advice on this one!

I agree with the comments above, C is the easiest way for you to go, you only want to use pure Assembly language if you want total control  - for maximum speed or if you want to push the hardware to the Limit.

I think you should expect to do most of the work on this one yourself - I mean, Keep looking for other people to help you, but if you really want to see this acomplished, then the only one you can rely on is yourself - If other people join you and solve problems - then great! but don't rely on it.

Break the project up - I literally made a chart with things like 'Joystick input' and 'plus sprites' on it, if you've got some downtime, look for code samples which may help you, or even just think over what you need, or plan to do - it'll make your more likely to be right later!

Aim for a small bit each time,even the smallest accomplisment is worth it!  aim to get a moving star onscreen one day, then a bunch the next, the next week try to draw a sprite, or read key input, or load a file from disk, it may seem you're not making progress -  it all builds up into a finished product also you'll learn as you go, and the project will seem less and less daunting.

Just to say again, you need to make sure YOU can make this happen, I helped out on the 13th doll project for a few months before my motivation ran out (http://www.the13thdoll.com/) that was literally 10 years ago - and their nearing release now! - I'm sure you're game's not going to take anywhere near that long, but that project is being finished for one reason alone, the lead developer is set on finishing it no matter what or how...
It's not being the most skilled developer that is important for completing a project - even if you ended up developing it in basic, if you keep working on you goal and pushing forward with it until it's done you'll have beaten 99.9% of the 'developers' who claim their projects were 'better' - but lost interest and gave up half way through, or before they even started!

I wish you all the best with your game! I'll be tough, and there'll be times you think it's impossible, but Stick at it and I look forward to seeing it done!

I should add that my ChibiAkumas game was my first Assembly game,  Years ago I wrote a dance game which used video capture in C++  which I had to learn first (and a far better programmer told me it couldn't be done) a few years back I tought myself Object oriented C and got an Iphone game approved for the iphone store ... don't convince yourself you can't do something - just because you don't know how to do it today!
Chibi Akumas: Comedy-Horror 8-bit Bullet Hell shooter!
Learn ARM, 8086, Z80, 6502 or 68000 with my tutorials: www.assemblytutorial.com
My Assembly programming book is available now on amazon!

Targhan

Great advice from Keith56. This is *your* project, and only you can make it done. There will always be people to give advice on a specific subject (How to display a sprite ? How to do play a sound ? ...), but as for using all these bits and putting them together, it's up to you. It may be daunting, but it's a very rewarding experience in the end.

As for your game :
- Focus first on the gameplay. Is it an action game ? It seems more like a turn-based strategy game. So in that regard, speed doesn't really matter as much as the user interface.
- Don't bother too much with this starfield effect. It can be done. You can do something as simple as color cycling+page flipping or, on the opposite, real-time math. But do the game first. As some suggested, don't hesitate precalculating everything before with some Basic/C/whatever before (no shame in that: most of the best demos are done this way).
- As for the sound, you can use STarKos or Arkos Tracker, it manages both music and FXs in an easy way. The team of CpcTelera integrated it to their framework, if you happen to use it.

Good luck!
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

Puresox

Some really decent and concise advice ^^^^^


My only offering is stating the obvious .Planning and knowing what the goal is meant to be ,clearly formulated so that everyone is on the same page . Having the vision and knowing what you are trying to achieve .


Puresox

Quote from: keith56 on 11:46, 17 February 17
Sounds like you have a plan! - I thought i'd offer my 2 cents of advice on this one!

I agree with the comments above, C is the easiest way for you to go, you only want to use pure Assembly language if you want total control  - for maximum speed or if you want to push the hardware to the Limit.

I think you should expect to do most of the work on this one yourself - I mean, Keep looking for other people to help you, but if you really want to see this acomplished, then the only one you can rely on is yourself - If other people join you and solve problems - then great! but don't rely on it.

Break the project up - I literally made a chart with things like 'Joystick input' and 'plus sprites' on it, if you've got some downtime, look for code samples which may help you, or even just think over what you need, or plan to do - it'll make your more likely to be right later!

Aim for a small bit each time,even the smallest accomplisment is worth it!  aim to get a moving star onscreen one day, then a bunch the next, the next week try to draw a sprite, or read key input, or load a file from disk, it may seem you're not making progress -  it all builds up into a finished product also you'll learn as you go, and the project will seem less and less daunting.

Just to say again, you need to make sure YOU can make this happen, I helped out on the 13th doll project for a few months before my motivation ran out (http://www.the13thdoll.com/) that was literally 10 years ago - and their nearing release now! - I'm sure you're game's not going to take anywhere near that long, but that project is being finished for one reason alone, the lead developer is set on finishing it no matter what or how...
It's not being the most skilled developer that is important for completing a project - even if you ended up developing it in basic, if you keep working on you goal and pushing forward with it until it's done you'll have beaten 99.9% of the 'developers' who claim their projects were 'better' - but lost interest and gave up half way through, or before they even started!

I wish you all the best with your game! I'll be tough, and there'll be times you think it's impossible, but Stick at it and I look forward to seeing it done!

I should add that my ChibiAkumas game was my first Assembly game,  Years ago I wrote a dance game which used video capture in C++  which I had to learn first (and a far better programmer told me it couldn't be done) a few years back I tought myself Object oriented C and got an Iphone game approved for the iphone store ... don't convince yourself you can't do something - just because you don't know how to do it today!
You ought to be writing books ,with communication skills like this.  Useful stuff

keith56

#13
I'd like to second the vote for Arkos Tracker! I used it in ChibiAkumas, and it's super powerful, and as easy to use as you could hope!

Quote from: Puresox on 19:56, 17 February 17
You ought to be writing books ,with communication skills like this.  Useful stuff

I'm not sure I have any writing skills - and learning Japanese has killed my english spelling! But I've been working in Web/VB dev professionally for years, and done hobby projects in other languages, and in both I've never felt I'm a very skilled programmer, but I'll tell you what I have seen in both my hobbywork and professional life - you see people who claim 'supers skills' and put down your methods and abilities - but they always seem to give up on their projects (Or be fired!) and the programmers who just get on and make something, even if it's a bit 'crappy' or simplistic are the ones who are actually left with something to show for it.


If your game is a strategy game like Psi5 trading company, it may be worth considering doing all the game logic in basic, and calling out to machine code routines for the sprites and sound, eg in psudocode

10 Call &6000 ' star layer drawer machinecode
20 Call &7000 ' Sprite layer drawer machinecode
30 locate 10,10:?"Shield";shl
40 if shield<0 goto 1000 'dead
....
100 poke &8001,sx ;new ship x
110 poke &8002,sy ;new ship Y
goto 10

The early tests of my game were done like this, Arkos can do all the music on interrupts for you, and supports basic, You'll need Machine code for fast stuff, but for reading keyboard input, showing text - if your game is a logic game, not a speedy shooter maybe basic will be enough for you - Writing conditions in basic and debugging code is much easier in basic than ASM  - it also gives you a way to build up your project and prove to yourself you can make this happen, as you learn how to make the bits you MUST have in fast code, you'll probably learn how to do the harder bits you were relying on basic for, but now can write yourself in C/ASM.
Chibi Akumas: Comedy-Horror 8-bit Bullet Hell shooter!
Learn ARM, 8086, Z80, 6502 or 68000 with my tutorials: www.assemblytutorial.com
My Assembly programming book is available now on amazon!

Puresox

Quote from: keith56 on 23:21, 17 February 17
I'd like to second the vote for Arkos Tracker! I used it in ChibiAkumas, and it's super powerful, and as easy to use as you could hope!

I'm not sure I have any writing skills - and learning Japanese has killed my english spelling! But I've been working in Web/VB dev professionally for years, and done hobby projects in other languages, and in both I've never felt I'm a very skilled programmer, but I'll tell you what I have seen in both my hobbywork and professional life - you see people who claim 'supers skills' and put down your methods and abilities - but they always seem to give up on their projects (Or be fired!) and the programmers who just get on and make something, even if it's a bit 'crappy' or simplistic are the ones who are actually left with something to show for it.
Yes getting on with a project and not over analysing ,to the point of preventing progress is a bane of the perfectionists amongst us. The ability to see projects through to the end , may sometime produce scrappy results on occassion , but the ability to complete  projects is reassuring to yourself ,  and the skils, Info and area's that need improvement,can be carried on to the next project . Confidence in your abilities grows.
I'm not a programmer yet , but am a musician/guitarist . I am great at improvised work , tidy licks and plenty of solid skills . But my area of weakness is being disciplined enough to produce a whole song . Buddies of mine are the opposite they can knock out a complete song all the time, I try to produce a complete track and I am over critical, and am striving for perfection, to the point that I can't compose .
Anyway going off the topic . Hope that the guy's project comes together .

arnoldemu

@ukmarkh as others have said the best thing  to do is code it yourself. I believe you can do it. The reason is that there are few CPC programmers, so if you can do it yourself you'll realise your idea.

Ask @EgoTrip for advice. Like you he was new to C. He persisted with his efforts and in the end he did it and released some great puzzlers.

My advice is to use C and to use cpctelera. Using C is much easier than assembler and you can make a more complex game than you could in BASIC.

Using CPCTelera will save you  the hard work of working out how to draw sprites and accessing keyboard etc You can concentrate on designing it and putting it together. I think also it will give 1) a massive sense of achievement as you complete each part 2) appreciate the limitations (or not) of the hardware and work involved.

C is really not too hard. Look at others code, read stuff on-line and ask away here. Take each step bit by bit and work through it and you'll get it.

In terms of c programs:

In C split your bits of game functionality into C functions. You do this with C 'functions'.

They have names and look like this:

void updatePlayer(int x,int y)
{
   // do work
}

updatePlayer is the name of the function. You use this to access it and to define it.

The "void" part is the return value. void means nothing, so the function takes in variables and returns no result.
The function takes in two variables named 'x' and 'y', both of type "int". Int is a whole number.

As I have written it above that defines the function but to use it do this:

updatePlayer(5,6);

or

int x = 5, y=6;
updatePlayer(x,y);

All programs have a beginning and in C it's called "main".

void main()
{

}

This special function is the first to be called at the beginning. You do everything from here.

Try it all out, and develop bit by bit. It doesn't matter if your code is bad at first, you will improve over time as you get more experienced.

Lets compare to a modern development platform e.g. Unreal Engine 4. In this you can script up "blueprints" using a graph. In the end it's like programming but in a visual way. That is how the designers put together the game. They use existing blueprint functions and script it up. Based on an event they do something. Using C is similar but you write it down rather than use a visual method to make it.




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

AMSDOS

I typed in 3D Space Chase which is on CPC-Power if you wanted to see how BASIC deals with it, though obviously it's rotating the colour cycles to animate the star movement.


I seem to recall a horizontal assembly star field simulator, I think it was posted in the Example Z80 assembly programs, perhaps start from the last page and work back.
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

keith56

If you want to look into assembly here are some of the resources that I used.

Here is a great tutorial that I learned most of my ASM from, it's for the TI calculator, but it's teaching how the language works, and the TI uses the same CPU

http://tutorials.eeems.ca/ASMin28Days/welcome.html

as well as CPC wiki, these sites has some great stuff:
http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/
http://www.cpctech.cpc-live.com/

This is the complete guide to all the commands - it's very in depth, but it is useful:
http://www.zilog.com/manage_directlink.php?filepath=docs/z80/um0080

This is more simple for day to day use:
http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/z80index.pl

And this is the one I use when I forget what a command does!
http://www.ticalc.org/pub/text/z80/z80instrset.txt


I made a bunch of cheat sheets and summary documents for my own reference during development - if you're interested PM me and I will make them available to you
Chibi Akumas: Comedy-Horror 8-bit Bullet Hell shooter!
Learn ARM, 8086, Z80, 6502 or 68000 with my tutorials: www.assemblytutorial.com
My Assembly programming book is available now on amazon!

sigh

There's also this:


http://www.cpcwiki.eu/forum/programming/8bp/


It's a very fast basic programming tool with incredible results.

arnoldemu

@ukmarkh more advice:

work on the game logic and the game flow first and use place holder graphics. get the feel of it right, show yourself the game play is as you want and do the tweaks needed. then put the graphics and the sounds in. do what they call a "vertical slice" which is effectively a start to end but a small part of it.

I know it's always nice to get the graphics looking great, but sometimes concentrating on the details too early is not always good unless you have the design already planned out. You may find out that it doesn't quite work as you expect and you need to make tweaks and changes.




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

SRS

@ukmarkh Fly little klingon fly :)

[attachimg=1]

very primitive first "pilot", you can fly from left to right and the warbird changes direction. done in C with cpctelera and RGAS.

Don't beat me for the messy source  :picard:


ukmarkh

Quote from: SRS on 17:53, 19 February 17
@ukmarkh Fly little klingon fly :)

[attachimg=1]

very primitive first "pilot", you can fly from left to right and the warbird changes direction. done in C with cpctelera and RGAS.

Don't beat me for the messy source  :picard:


Haha! Are you sure you don't want to help me program this game lol! The Klingon War Bird of Prey wouldn't need to move left and right, it would just uncloak and shudder when hit, with an explosion if destroyed. There would probably be three graphics needed for each ship, as you would see it degrade with prolonged battle.


Great to see this sort of thing though. Thanks! 

ukmarkh

#22
Quote from: AMSDOS on 09:45, 19 February 17
I typed in 3D Space Chase which is on CPC-Power if you wanted to see how BASIC deals with it, though obviously it's rotating the colour cycles to animate the star movement.


I seem to recall a horizontal assembly star field simulator, I think it was posted in the Example Z80 assembly programs, perhaps start from the last page and work back.


Maybe I'm overestimating the power of the CPC, but I'm convinced it could do the Star Field I'm looking for, I've seen elements of it kinda incorporated in other games, flashes of what might have been, but never pushed in the way I had hoped.


I think C with cpctelera and RGAS might be the way forward, but this should be something that is massively technical, more about telling a story in a JRPG sort of way. I will explain in a few days, I'm going to give people a better idea about the game.
If you could think of any C books or resources that might help, I'm all ears, don't have a clue where to start with C?

SRS

Quote from: ukmarkh on 19:24, 19 February 17

Haha! Are you sure you don't want to help me program this game lol! The Klingon War Bird of Prey wouldn't need to move left and right, it would just uncloak and shudder when hit, with an explosion if destroyed. There would probably be three graphics needed for each ship, as you would see it degrade with prolonged battle.


Great to see this sort of thing though. Thanks!

I could help out a bit for sure, but no time to do the prog itself.

Having two project ideas myself but just can't get them fly :(

AMSDOS

Quote from: ukmarkh on 19:32, 19 February 17

Maybe I'm overestimating the power of the CPC, but I'm convinced it could do the Star Field I'm looking for, I've seen elements of it kinda incorporated in other games, flashes of what might have been, but never pushed in the way I had hoped.

It's hard to say, looking at your screenshots the spaceships use 2-3 colours, 1 colour would be needed for the background, so in MODE 0 that leaves you with between 10 and 12 colours (depending on if you want the green & yellow) to simulate the movement of the stars, though with a bit of clever drawing the grey on the spaceships could be replaced with White & Black dotted in those places, which would give you back a colour to use in the star field. The star field still looks complex through cause there's distant dots & different combinations of streaks to make it appear your moving through space, I think some of it could be done through colour rotation, though it maybe a struggle to have that all done through colour rotation. The alternative is physically moving the stars which requires compiled languages.

QuoteI think C with cpctelera and RGAS might be the way forward, but this should be something that is massively technical, more about telling a story in a JRPG sort of way. I will explain in a few days, I'm going to give people a better idea about the game.
If you could think of any C books or resources that might help, I'm all ears, don't have a clue where to start with C?

There maybe something in those tools to allow for that kind of effect, for C there's threads (SDCC or CPCTelera) in the programming section which lay have links back to Tutorial guides. The alternative to C I think would be CPC BASIC 3, though there are other Cross-platform languages as well. The 8BP RSX Library was raised earlier, which was just recently used with CPC BASIC 3 and shown in a video here. 8BP includes routines for producing a star field though I've only seen them using 2D star fields rather than the ones coming towards you.
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

Powered by SMFPacks Menu Editor Mod