Jump to content

Photo

Lynx coding contest


190 replies to this topic

#51 disjaukifa OFFLINE  

disjaukifa

    River Patroller

  • 2,125 posts
  • Berzerker In Training
  • Location:Research Triangle North Carolina

Posted Tue Oct 9, 2012 12:37 PM

I think a common anything would be good for newbies. I'm all for integrated development environments with included ready-to-compile examples. I wonder if something like NESICIDE could be subverted towards Lynx development?
http://www.nesicide.com/?s=about

Also, did somebody say sprites?
Posted Image


That looks awesome on the sprites! Yeah I'm working on getting Karri's/Wookie's CC65 up and running with LX.NET tutorial guide, I think if we, them, me, or us, can put together some very simple demos and have a detailed instruction guide on how to get it all together and running that will help. Once I have a better understanding of how all of it works, I want to see if I can get it working outside of Windows, I'm a Mac person myself but I don't mind doing development in Windows on a VM if I have to!

#52 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,308 posts

Posted Tue Oct 9, 2012 12:51 PM

If someone gives me a palette and tile/sprite size restrictions I could contribute to a sprite library. Those two sprites in my previous post were using an 8 color 12x12 pixel restriction.wumpus.jpg

Edited by theloon, Tue Oct 9, 2012 12:53 PM.


#53 disjaukifa OFFLINE  

disjaukifa

    River Patroller

  • 2,125 posts
  • Berzerker In Training
  • Location:Research Triangle North Carolina

Posted Tue Oct 9, 2012 1:04 PM

If someone gives me a palette and tile/sprite size restrictions I could contribute to a sprite library. Those two sprites in my previous post were using an 8 color 12x12 pixel restriction.


I know at one point in the 2600 programming thread they had come up with a 2600 mascot that was going to be free to use for anyone programming for the system, maybe we could come up with a character like that for the Lynx? I'm going to have to go and look that up again . . .

Also I don't know what the sprite restrictions are for the Lynx, I think we will have to get Karri, Wookie, LX.NET to answer that one.

#54 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Tue Oct 9, 2012 2:04 PM

It would probably be better to specify some themes for the sprite sheets needed before hand. So for example if you specified a "cave theme" you'd have several loose rocks of different sizes, stalactites, stalagmites, different rock platforms to walk on, tileable rock formations and so on. That way you could make vertical and horizontal shmups and platformers (or anything else you wanted). You might also want to set a limit on the number of colours given to background elements. That way if you have a selection of animated foreground characters (humans, bats, snails whatever) they can be used on all the backgrounds without needing to be recoloured. The same logic would apply to weapons fire, explosions and so on.

You'd also need some rules as to what you can do with the sprites e.g. are flipping, rotating, scaling and recolouring allowed and so on.

#55 Cammy OFFLINE  

Cammy

    Chopper Commander

  • 107 posts
  • Location:Gold Coast, Australia

Posted Tue Oct 9, 2012 5:05 PM

I think a good idea would be to grab a bunch of sprite and tile sheets from OpenGameArt, create a universal 12bit 16 colour palette and start resizing and remapping the graphics to this new palette. Then any of the objects can be used in the same game without needing to be remapped again, and the palette can always be changed afterwards.

#56 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Tue Oct 9, 2012 5:15 PM

Personally I'd rather see what the pixel artists in the AA community can come up with given a loose specification. That way they get to contribute to the contest and also see their own work used in a game too.

#57 disjaukifa OFFLINE  

disjaukifa

    River Patroller

  • 2,125 posts
  • Berzerker In Training
  • Location:Research Triangle North Carolina

Posted Tue Oct 9, 2012 5:26 PM

Personally I'd rather see what the pixel artists in the AA community can come up with given a loose specification. That way they get to contribute to the contest and also see their own work used in a game too.


I agree its why I suggested getting PAC-MAN-RED involved, he's done a slew of work for the 2600 people.

#58 karri OFFLINE  

karri

    River Patroller

  • 2,552 posts
  • Location:Espoo, Finland

Posted Tue Oct 9, 2012 10:05 PM

I'm in also. 12 by 12 pixel and 8 colors is good. We could keep to that. I would like to have the graphics animated. 2 frames for walking. The sprite can be flipped for left/right.

I would also like to have pulsating objects like hearts, jewels, stars.

--
Karri

#59 karri OFFLINE  

karri

    River Patroller

  • 2,552 posts
  • Location:Espoo, Finland

Posted Tue Oct 9, 2012 11:32 PM

A project like this would be a good thing for testing out the new features in cc65 also.

Things I have in mind are:
- sp65 to compile bitmaps to sprites that can be accesses by C code and ASM code
- BLL style structured programming using ca65 assembler. There is pretty good macro support in cc65 already.
- use of Sage's sound player
- interruptor for real-time timekeeping in the game

But of course you should be allowed to use any tools for creating your game.

I could contribute with a small Makefile that links in all the needed stuff mentioned above plus a simple Hello World-application with sound and timekeeper.

#60 LX.NET OFFLINE  

LX.NET

    Dragonstomper

  • 761 posts
  • Location:The Netherlands

Posted Tue Oct 9, 2012 11:43 PM

Hey, this sounds great. I'm up for the challenge.
As for the tutorials, I've already promised to work on the sprites part. This will most certainly be done in multiple parts as there is a lot to be told on the sprite engine.
Before that I will also release the tutorial source code, which covers all tutorials already done, plus basic sprites, joystick and interrupts. Tutorials this evening. The sprite part 1 this week.

#61 Cammy OFFLINE  

Cammy

    Chopper Commander

  • 107 posts
  • Location:Gold Coast, Australia

Posted Wed Oct 10, 2012 1:17 AM

Personally I'd rather see what the pixel artists in the AA community can come up with given a loose specification. That way they get to contribute to the contest and also see their own work used in a game too.


I didn't suggest it to prevent anyone from making their own graphics, but to help out those programmers who might not find someone to help them out. I was going to do this myself, but if everyone disagrees then I'll leave you to it.

#62 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Wed Oct 10, 2012 3:49 AM

I didn't suggest it to prevent anyone from making their own graphics, but to help out those programmers who might not find someone to help them out. I was going to do this myself, but if everyone disagrees then I'll leave you to it.


I'm talking about sprite sheets prepared in advance for everybody in the contest to use. Then programmers don't have to find an artist they can just take whatever tiles and sprites they need from any of the themes to make their game.

#63 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • 9,821 posts
  • Busy bee!
  • Location:England

Posted Wed Oct 10, 2012 3:59 AM

I would like to have the graphics animated. 2 frames for walking. The sprite can be flipped for left/right.


The player character should have at least a 4 frame (or more) walk animation. You spend all your time looking at him/her so they should be well animated in my opinion. A two frame animation (minimum) is adequate for enemies. But again a 3 or 4 frame animation would be nicer.

#64 disjaukifa OFFLINE  

disjaukifa

    River Patroller

  • 2,125 posts
  • Berzerker In Training
  • Location:Research Triangle North Carolina

Posted Wed Oct 10, 2012 6:55 AM

A project like this would be a good thing for testing out the new features in cc65 also.

Things I have in mind are:
- sp65 to compile bitmaps to sprites that can be accesses by C code and ASM code
- BLL style structured programming using ca65 assembler. There is pretty good macro support in cc65 already.
- use of Sage's sound player
- interruptor for real-time timekeeping in the game

But of course you should be allowed to use any tools for creating your game.

I could contribute with a small Makefile that links in all the needed stuff mentioned above plus a simple Hello World-application with sound and timekeeper.


That sounds perfect! It always better to have other people test your code than yourself!

Hey, this sounds great. I'm up for the challenge.
As for the tutorials, I've already promised to work on the sprites part. This will most certainly be done in multiple parts as there is a lot to be told on the sprite engine.
Before that I will also release the tutorial source code, which covers all tutorials already done, plus basic sprites, joystick and interrupts. Tutorials this evening. The sprite part 1 this week.


LX.NET we also need a collision detection tutorial. I haven't looked into it all that much, but I know we are going to need one!

I'm talking about sprite sheets prepared in advance for everybody in the contest to use. Then programmers don't have to find an artist they can just take whatever tiles and sprites they need from any of the themes to make their game.


I think this is a great way to get others involved in the contest and won't to contribute but don't have programming skills. I know for myself I absolutely suck at graphics, so the idea of having other contributing graphics is awesome!

The player character should have at least a 4 frame (or more) walk animation. You spend all your time looking at him/her so they should be well animated in my opinion. A two frame animation (minimum) is adequate for enemies. But again a 3 or 4 frame animation would be nicer.


Agreed, I know for Chips Challenge, Chip had 4 frames which made him look so smooth walking around the screen!

-Grant

#65 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,308 posts

Posted Wed Oct 10, 2012 7:36 AM

I'm talking about sprite sheets prepared in advance for everybody in the contest to use. Then programmers don't have to find an artist they can just take whatever tiles and sprites they need from any of the themes to make their game.


You know, TIGSource has had contests broken down into two parts: The first involves contestants making assets and the last bit involves people using those assets strictly for their game entries.

#66 karri OFFLINE  

karri

    River Patroller

  • 2,552 posts
  • Location:Espoo, Finland

Posted Wed Oct 10, 2012 8:29 AM

That sounds perfect! It always better to have other people test your code than yourself!


Well I sure won't be using that crap myself. I just confuse the competition so they waste time in trying to find the bugs while I code my competition entry with the old proven BLL kit.

Oh crap. This was going to be a PM. Now it went to the forum instead.

Edited by karri, Wed Oct 10, 2012 8:30 AM.


#67 LX.NET OFFLINE  

LX.NET

    Dragonstomper

  • 761 posts
  • Location:The Netherlands

Posted Wed Oct 10, 2012 12:16 PM

Well I sure won't be using that crap myself. I just confuse the competition so they waste time in trying to find the bugs while I code my competition entry with the old proven BLL kit.

Oh crap. This was going to be a PM. Now it went to the forum instead.

This remark, coming from the guy that has made the biggest Lynx contribution to the CC65 tools suite, brought a big smile/grin to my face.

#68 obschan OFFLINE  

obschan

    Chopper Commander

  • 168 posts
  • Location:Hong-Kong

Posted Wed Oct 10, 2012 4:59 PM

Well I sure won't be using that crap myself. I just confuse the competition so they waste time in trying to find the bugs while I code my competition entry with the old proven BLL kit.

Oh crap. This was going to be a PM. Now it went to the forum instead.


Ahah karri, I knew that you had a master plan from day 1 to conquer the Lynx scene!!

#69 disjaukifa OFFLINE  

disjaukifa

    River Patroller

  • 2,125 posts
  • Berzerker In Training
  • Location:Research Triangle North Carolina

Posted Wed Oct 10, 2012 5:00 PM

This remark, coming from the guy that has made the biggest Lynx contribution to the CC65 tools suite, brought a big smile/grin to my face.



I thought BLL and CC65 were basically the same thing . . . whats the difference?

#70 Shawn Jefferson OFFLINE  

Shawn Jefferson

    Stargunner

  • 1,987 posts
  • Location:Victoria, Canada

Posted Wed Oct 10, 2012 7:24 PM

BLL, was/is I believe an assembler with some macro support and some pre-built library functions for the Lynx. There was also a port of cc65 (termed "newcc65") that often seemed to go hand in hand with BLL (probably because the same people were involved).

Then there is the CC65 (www.cc65.org) toolchain (assembler: ca65, compiler: cc65, linker: ld65) which is a cross-compiler for many 6502 based systems, has active development, supports (mosty) C standards (C89 and some of C99), and typically produces better code than the deprecated "newcc65".

#71 karri OFFLINE  

karri

    River Patroller

  • 2,552 posts
  • Location:Espoo, Finland

Posted Wed Oct 10, 2012 10:11 PM

The BLL makes assembler programming almost as easy as using C. 42Bastian has created lots of great macros. He also made a macro package that can be used with cc65. But only a small part of the macros have been ported to cc65. Sage has been working on this port also. A small example of the power of BLL:

			 run LOMEM

Start::		
			 START_UP
			 CLEAR_MEM
			 CLEAR_ZP +STACK

			 INITMIKEY
			 INITSUZY

;Initialize board area
; set tactics $02 is the most desired place $80 the least
;
			 ldx #Rows*Columns
			 lda #$20
			 _WHILENE
				 dex
				 sta board,x
			 _WEND

			 lda n
			 cmp pos
			 _IFEQ
				 lda #CursorBkg
			 _ELSE
				 lda #PegBkg
			 _ENDIF
			 sta sprite_bkg
			 sta drawit
			 ldx n
			 lda board,x
			 _SWITCH
			 _CASE
				 lda #PlayerCol
			 _CASE #1
				 lda #ComputerCol
			 _ELSES
;
; Cursor color chooser
;
			 lda n
			 cmp pos
...
			 _ENDS
			 sta sprite_col

I have included a competition entry of Othello. It is called ottelo and was part of the 1k competition. The code is exactly 1024 bytes and completely written in BLL.
You really cannot even get close to this compactness by using C-language.

This is a 10 by 10 square Othello game for the Lynx.
ottelo1.jpg

In the far future I would like to have a macro kit that allows people to code in BLL using the ca65 assembler. The good thing is that the ld65 linker has more power that can be used with ca65. So cc65 suite should not only be for C-people. It could be the toolkit for ASM people as well. You could easily use the interruptor, the tgi-libraries, conio, joypad and ComLynx libraries from ASM also.

In Startdreamer I have large parts written in ASM. Like the 3D engine using Lynx hardware multiply, accumulate and divide to get a decent update speed of the 3D graphics. The rest is C for easier understanding of a large program.
--
enjoy,
Karri

Attached Files


Edited by karri, Wed Oct 10, 2012 10:43 PM.


#72 karri OFFLINE  

karri

    River Patroller

  • 2,552 posts
  • Location:Espoo, Finland

Posted Thu Oct 11, 2012 12:32 AM

The BLL macro kit can only be compiled by lyxass assembler. The syntax is different from ca65 so a BLL program requires lots of changes to compile on ca65.

In a way it is good to have many kind of tools available. The lyxass + BLL has produced many good game carts. ASM has better power and more control over the code. Therefore many hard-core coders prefer it over C.

Wookie is maintaining a similar developers tool called hla. It is a structured macro assembler like BLL+lyxass. I believe the hla supports a few different targets.

There may be other compilers out there also. The right tools are the ones that you feel comfortable with. I definitely recommend BLL+lyxass for ASM work and cc65 for mixing C with ASM.
--
Karri

#73 disjaukifa OFFLINE  

disjaukifa

    River Patroller

  • 2,125 posts
  • Berzerker In Training
  • Location:Research Triangle North Carolina

Posted Thu Oct 11, 2012 7:13 AM

The BLL macro kit can only be compiled by lyxass assembler. The syntax is different from ca65 so a BLL program requires lots of changes to compile on ca65.

In a way it is good to have many kind of tools available. The lyxass + BLL has produced many good game carts. ASM has better power and more control over the code. Therefore many hard-core coders prefer it over C.

Wookie is maintaining a similar developers tool called hla. It is a structured macro assembler like BLL+lyxass. I believe the hla supports a few different targets.

There may be other compilers out there also. The right tools are the ones that you feel comfortable with. I definitely recommend BLL+lyxass for ASM work and cc65 for mixing C with ASM.
--
Karri


Ok that makes sense. I've never been able to wrap my head around assembly, I understand that it is incredibly powerful, but I just can't wrap my head around it, C makes more sense to me, so I'd rather sacrifice power and have simplicity instead.

What is the maximum game size with CC65 in kilogytes/megabytes?

-Grant

#74 karri OFFLINE  

karri

    River Patroller

  • 2,552 posts
  • Location:Espoo, Finland

Posted Thu Oct 11, 2012 7:42 AM

What is the maximum game size with CC65 in kilogytes/megabytes?


There is none. The power of cc65 lies in segmentation. You can split your program in segments that can be loaded in on demand. The size of the program is limited by the size of the cart only. For a program without segmentation the max size is 64 kilobytes minus screen buffers, stack and Lynx registers. Roughly 40 kbytes is usable for your code.

#75 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,308 posts

Posted Thu Oct 11, 2012 8:08 AM

Does the slim form factor of Lynx carts constrain game size? Do you have to use special chips to fit into a Lynx cart?




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users