CPCWiki forum

General Category => Games => Topic started by: ukmarkh on 09:37, 15 February 17

Title: Help for people who want to make new games?
Post by: ukmarkh on 09:37, 15 February 17

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 (https://classicreplay.blogspot.com/2017/02/lightspeed-how-can-i-make-this-game.html)


(https://1.bp.blogspot.com/-UkYWqlmvwas/WJ5QEZ1XSgI/AAAAAAAACPU/ZwVLT7UGA4Um_R9tIzm08vUCzLpn1uOswCLcB/s1600/Star%2BTrek%2BLightspeed.jpg)
Title: Re: Help for people who want to make new games?
Post by: sigh on 13:08, 15 February 17
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.
Title: Re: Help for people who want to make new games?
Post by: 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?
Title: Re: Help for people who want to make new games?
Post by: sigh on 16:34, 15 February 17
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.
Title: Re: Help for people who want to make new games?
Post by: roudoudou on 17:22, 15 February 17
Very easy on gx4000 with color cycled animated background and hardware sprites... Hardest part will be the multidirectionnal scrolling to change the perspective
Title: Re: Help for people who want to make new games?
Post by: 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

(http://www.cpcmania.com/Docs/Programming/Campo_de_estrellas_3D_02.gif)
Title: Re: Help for people who want to make new games?
Post by: ukmarkh on 21:29, 15 February 17
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 (http://www.cpcmania.com/Docs/Programming/3D_Starfield.htm)

(http://www.cpcmania.com/Docs/Programming/Campo_de_estrellas_3D_02.gif)


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? ;-)



Title: Re: Help for people who want to make new games?
Post by: Puresox on 21:21, 16 February 17
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
Title: Re: Help for people who want to make new games?
Post by: Shining on 09:23, 17 February 17

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.....




Title: Re: Help for people who want to make new games?
Post by: 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!
Title: Re: Help for people who want to make new games?
Post by: Targhan on 14:02, 17 February 17
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!
Title: Re: Help for people who want to make new games?
Post by: Puresox on 19:52, 17 February 17
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 .

Title: Re: Help for people who want to make new games?
Post by: Puresox on 19:56, 17 February 17
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/ (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
Title: Re: Help for people who want to make new games?
Post by: 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!

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.
Title: Re: Help for people who want to make new games?
Post by: Puresox on 00:04, 18 February 17
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 .
Title: Re: Help for people who want to make new games?
Post by: arnoldemu on 11:49, 18 February 17
@ukmarkh (http://www.cpcwiki.eu/forum/index.php?action=profile;u=34) 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 (http://www.cpcwiki.eu/forum/index.php?action=profile;u=337) 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.




Title: Re: Help for people who want to make new games?
Post by: AMSDOS on 09:45, 19 February 17
I typed in 3D Space Chase which is on CPC-Power (http://www.cpc-power.com/index.php?page=detail&num=9397) 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 (http://www.cpcwiki.eu/forum/programming/asm-source-code/), perhaps start from the last page and work back.
Title: Re: Help for people who want to make new games?
Post by: keith56 on 10:15, 19 February 17
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
Title: Re: Help for people who want to make new games?
Post by: sigh on 11:32, 19 February 17
There's also this:


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


It's a very fast basic programming tool with incredible results.
Title: Re: Help for people who want to make new games?
Post by: arnoldemu on 16:36, 19 February 17
@ukmarkh (http://www.cpcwiki.eu/forum/index.php?action=profile;u=34) 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.




Title: Re: Help for people who want to make new games?
Post by: SRS on 17:53, 19 February 17
@ukmarkh (http://www.cpcwiki.eu/forum/index.php?action=profile;u=34) 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:

Title: Re: Help for people who want to make new games?
Post by: ukmarkh on 19:24, 19 February 17
Quote from: SRS on 17:53, 19 February 17
@ukmarkh (http://www.cpcwiki.eu/forum/index.php?action=profile;u=34) 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! 
Title: Re: Help for people who want to make new games?
Post by: ukmarkh on 19:32, 19 February 17
Quote from: AMSDOS on 09:45, 19 February 17
I typed in 3D Space Chase which is on CPC-Power (http://www.cpc-power.com/index.php?page=detail&num=9397) 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 (http://www.cpcwiki.eu/forum/programming/asm-source-code/), 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?
Title: Re: Help for people who want to make new games?
Post by: SRS on 20:27, 19 February 17
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 :(
Title: Re: Help for people who want to make new games?
Post by: AMSDOS on 01:18, 20 February 17
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 (http://www.cpcwiki.eu/forum/programming/8bp/msg139035/#msg139035). 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.
Title: Re: Help for people who want to make new games?
Post by: Sykobee (Briggsy) on 15:50, 21 February 17

Assuming no colour cycling...

One cheat is to not try to move every star, every game cycle. That allows you to double or triple the number of stars processed per cycle before players notice the pattern.
I note that there's two states - slow, and warp. The former moves the star (erase, update, plot), and the latter just streaks the star (update, plot).


Another cheat is to update distant stars less, because further away stars move less in screen-space so why bother updating them every time. Obviously the problem here is that at some point, they get closer so you need to process them more often. However checking the distance before processing is cheap compared to the processing (maths to move star position with some level of accuracy (otherwise streak will look weird) and rendering (erase, plot).


A cheap proxy for distance in a starfield is 'how old is this star in game cycles'. Stars 'die' when they're too close/off-screen, and are reborn near the origin.
Title: Re: Help for people who want to make new games?
Post by: ukmarkh on 01:15, 22 February 17
Star Trek: LightSpeed

Game development Stardate – Part 1 (-305854.8007039574)

Game Story:

This will be a sweeping adventure through space and play out like an episode of Star Trek. Throughout the game, you'll upgrade your ship to its former glory, engage in turn-based combat, earn new experimental upgrades, and prevent the Federation from destruction. You'll need to navigate the Alpha Quadrant, meet with new life forms and solve a variety of political disputes.

Turn based system:

You start in a defensive stance, but you can use multiple actions in one turn, if you're feeling brave, you can opt to miss a turn, this is a highly risky move, but should your shields hold, this builds up, even more, power, nine times out of ten, this will deal a deadly blow to an enemy vessel. Mess this up, though, and you'll damn near lose everything. You won't go back to the start, but you will have to go back to the last saved waypoint losing any upgrades you acquired during that mission.

Every time you defeat an enemy ship, you can choose to salvage crew and use ship for parts, destroy the enemy ship or let them go. The latter can be used as a bargaining chip should you run amuck with a sworn enemy of theirs, you can call upon them to help out, but this is not guaranteed. This can prove especially useful against tougher ships or more than one opponent.

Characters:

This game will play out as the original series, each character including Kirk will become stronger and more proficient in their respective roles, and the more you progress. For example; Spock will give you logical explanations and differing levels of advice, but you will only be able to use the abilities of each character once for each section, if you proceed through a section without aid, the crew carries over an extra turn for the next section, but no more than two. Using the computer to scan or for advice is also classed as a move within each turn.

Game progress:

Unfortunately, I'm starting with zero game programming skills. I've been given lots of tips and advice on how to get started, but now have to decide on what programming language I will need to use in order to get there. I believe the code will need to be as tight as possible and 128K only in design. My first job will be to learn as much as possible over the next three to six months, sorry but this will be a long drawn out process. However, in between, I will draw out all of the graphics needed for the game, this bit I should be able to do on my own, hopefully.

So far it looks as though my head is leaning towards learning to program in ASM, harder I'm told, but I feel that long term, this will give me more control. I'm also a bit apprehensive about asking questions, feels a little embarrassing, but you know what, people have been really helpful, can't believe it.

Next update in two weeks from now, until then... "second star to the right, and straight on till morning".
Title: Re: Help for people who want to make new games?
Post by: keith56 on 04:15, 22 February 17
Sounds like you know how you're going to push forwards with this, so good luck and I look forward to seeing your next update.

I only learned ASM 6 months or so ago, so many of the early questions you will have will probably be the same ones I did - so feel free to drop me a line about anything.
Title: Re: Help for people who want to make new games?
Post by: Arnaud on 08:00, 22 February 17
Quote from: ukmarkh on 01:15, 22 February 17
So far it looks as though my head is leaning towards learning to program in ASM, harder I'm told, but I feel that long term, this will give me more control. I'm also a bit apprehensive about asking questions, feels a little embarrassing, but you know what, people have been really helpful, can't believe it.

Honestly you should use cpctelera, to start there are are plenty of examples and full games coded with it.
And cpctelera is not only a C compiler it's a framework with very useful tools provided.
The C language is easier to learn than asm but if you want to write/learn asm you can mix the two languages in the same project.
Title: Re: Help for people who want to make new games?
Post by: arnoldemu on 10:02, 22 February 17
I agree with @Arnaud (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1424) . Use C.

If you use ASM you will spend a lot of timing thinking of the use of registers, memory locations and if the code is good enough or fast enough.

Make it in C.

Then you can get help to find out which bits are actually slow, and either use a different algorithm to make them faster or re-write them in asm.

You will find that development in C is much faster compared to asm and you can really think about how the game works rather than if your routine for drawing the enemy space ship is fast enough or not.

I think with it being a turn based game it'll make very little difference to the speed of the game.

Also, cpctelera has lots of functions and tools to speed up the development of the game.

If you made it in asm, you would need to think about how to export things from graphics packages, which tools to use that kind of thing. cpctelera has it all together.

Title: Re: Help for people who want to make new games?
Post by: Shining on 09:04, 23 February 17
I agree, too. Nowadays I start with C on the CPC and during development I optimize here and there in ASM as needed. So when the project is finished, many routines are replaced by asm.


Also, in the beginning of a project, I use many short C-functions, so that I have a better overview of the whole thing. Later on, when I get to the optimizing-stage, I unroll many of these or use tables instead of math etc...
Powered by SMFPacks Menu Editor Mod