So, I decided to finalize my choice for what I would do in the Prizm contest Razz I was going to do pyyrix, but 30% a nasty bug hit and since I couldn't release the source (I would have to show at least 60% of it for someone to make sense of it) and after I realized I couldn't get it done in time, I decided last week to start another attempt: PrizmCity! Very Happy

A full color SimCity1-like game where you are the mayor of a region and must build a city from scratch (like in SimCity, obviously Razz).  As with SimCity games, you can't build your own buildings (besides schools, police kiosks, landmarks/parks, etc.) but instead you zone them out into Residental, Industrial, and Commercial areas so that private builder will build in these areas.  

The wealth of the buildings and residents entirely depends on how you plan you city though: you need to keep crime low, education and health high, environment pristine, utilities in check, transportation appropriate in certain city areas (low traffic in industrial and residential, high traffic in commercial), tourist attraction to bring business and wealth, and good laws/taxes/ordinances that aren't too strict yet still earn you money.

I should gave everything I just said ^above^ done by the contest due date (hopefully), and maybe afterwords I'll put in things like countries of joined regions, multiplayer region trading, disasters, designing custom terrain you city will be built on, and more.

Some screens (the in-game ones will probably be shown tomorrow):

(in case you didn't know, both backgrounds are of the Parque Central Twin Towers in Caracas, Venezuela Smile I thought they showed a "city aura" well so I picked them for the job)

Also, this might possibly be the first thread out there for a Prizm contest entry Razz and, in the about screen, it *says* open-sourced, and it will be open-sourced once the contest due date has passed (I can distribute it then)


Since I'm crossposting this from Omnimaga (since I put it there first due to the contest being there) Here's some more progress as of 5 minutes ago:

[quote author=Juju link=topic=10246.msg186221#msg186221 date=1314988465]
Sounds pretty promising. Don't forget the Prizm only have 65536 colors, you might want to downgrade these pics to 16 bit so it would be more realistic.

Actually, now that I have the menu fully working (title screen, cursor, about screen) I must remark you can barely tell the difference between the 24 bit versions and 16 bit versions Razz I could only tell that one cloud looked blurrier. But to the sane person, it looks *amazing* even with only 2^16 colors Smile

With that being said, yes I do have the main title screen elements working, and rather smoothly too. I messed with Kerm's PRGM_GetKey routine and was able to make sure that pressing keys won't go through the cursor options too fast or anything; in short, I have found a way to have Axe-Like GetKey responsiveness, whoever thought they went Casio BASIC speed was rather wrong (wrong about the custom GetKey routine that scans the buffer)

Got that done, and I already had some of the actual engine done (map generation) -- this is going very very well. Expect a very polished release on the due date. I went through 3 hours of coding just now to make a large set of custom Axe-Like routines, the Title Screen, and bug fixing tile generation so I'd say I'm moving rather fast. I should have some actual gameplay progress by sunday or labor day; tomorrow will be spent doing some of the spriting (probably roads, utilities, some more terrain objects, and zoning overlays)

Also don't forget the huge amount of memory that fullscreen images take up. You don't want too many of those! Best of luck on this; I look forward to non-concept screens soon. And if I may be selfish, that menu looks a lot like the Obliterate menu. Wink
Indeed, I noticed it looked similar after I was doing tests today and accidentally clicked into Obliter8 Razz rest assured, original code was used. I also only use two of those screens, and I have the full menu/about thing working, setting up a new city working, almost have some simple rendering working, and I'm about to set up simple global stats like money, time passed, population, etc. And have some preliminary functions to control evaluating these stats once every few times the enginerenderloop circulates.

On a side note, I am stuck with the file I/O things, but really that can happen later; I'm allocating all of the data used for the game as one huge chunk, and saving it into a file is really just a few lines of work (literally memcopying it all over to the file) so for now I'll just be hassled with starting a new game every time I test Razz
I'll go take a look at your topic later; hopefully it will be something relatively easy. Best of luck with the file I/O; I'll probably learn something with you while helping you.
finally some in-game stuff! Smile

Here's a part of a map I "mocked-up" (I don't have a camera/videocam so I couldn't directly show a picture of the map generation I just got working so I pieced it together in paint using my Prizm as a reference -- It's actually just like in game though) showing one seed formula used to generate and the outcome. The black area is reserved for the future HUD. Basically, This one had a formula that squeezes all terrains into a map -- so that mountains, trees, grass, and sand/dirt are all very very close together. Parameters for seeding (you can actually input them to obtain prime results for your city's terrain!):

[o] Density, from 1 to 5. Basically, how close to put changes in tiles on the map. This generated map is set on 4
[o] Altitude, with "very low" to "very high" and an additional "varied" option. Basically, if a map is really high, it will have a lot of dirt/mountains, low ones have sand/water, medium ones have lots of grass, varied is.. varied. This map was on "varied"
[o] Climate, from "cold", "temperate", "normal", and "hot" -- cold means a lot of dirt mixed with grass, temperate means a lot trees growing, hot means lot of mix of sand and grass (basically affects how plant life grows), this map was on "temperate"
[o] Gradualism, from 1 to 3, basically tells how gradual to make the changes from one tile to the next (like Mountain -> Dirt -> grass) -- this map was on 2 (1 is low and 3 is high)

Next up will be simple statistics and utilities Smile
Very cool stuff, Ashbad! If it looks that nice on-calculator, then I definitely will watch this project with keen interest, especially in its relevance to a project of mine. In fact, if you managed to throw together some sort of smooth-scrolling moduler tilemapper that could be used by other programs, I would be very impressed indeed.
Sorry, no smooth scrolling Sad (scrolls by tiles ATM.) Well, at least not for this project. I starting experimenting with it before on the prizm and I'm trying to see if I can get some sort of thing out like what you mentioned so that other games can use it. I think the key for it will be many buffer recantations and LCD Stripe updating (and possibly limited renderloops).
Why bother with LCD striping? Even with the limited FPS we can achieve doing full-speed LCD writes, I think it's possible to create an attractive smooth-scrolling routine with simple wide-buffer windowing.
Well, I got a preliminary HUD working, reduced the size of viewable playing field at a time (from 11x24 to 20x10 to make tons of room for the HUD), got a map cursor working, fixed a *very* fatal flaw in map generation, and a few other things Smile I completely rewrote the map generation to fix the errors and I achieved 500 lines in one hour Shock

EDIT: even added those little quirky messages usually seen in SimCity games when setting up a new city like "Seeding Trees" or "Parsing Mountains" :3
Well, finished all work concerning Map Generation. Things I did:

- reduced to a 2 pass system
- since generating lakes and islands and such didn't work well, it uses preset seeds in pass 2 to make them
- got rid of all junk generation
Would you mind giving us a three-sentence overview of how the generation algorithm works, including what the two passes are for?
KermMartian wrote:
Would you mind giving us a three-sentence overview of how the generation algorithm works, including what the two passes are for?

no problem Smile

Well, basically, the algorithm takes in 5 parameters -- Density, Altitude, Climate, Gradualism, and Variance. Density has a bunch of uses -- it essentially though determines how crowded the map is with expected features (it increases the number of sandbars, mountains, trees and plains, etc.). Gradualism basically doesn't do much, but it does determine how quickly a landscape can change in altitude or feature (i.e, how many tiles to wait before raising from water to sand, etc.). Altitude is the most important one, and tells whether your city will be based in a mountain range, a forest/very large field, or on island(s). Climate chiefly impacts water levels and tree populations.

All of the above is taken care of in the first pass. In the second pass, Variance is taken into account. Based on how high the number is, the higher amounts of "preset seeds" will be shot into the map (essentially, how many area quirks like smooth lakes, rivers, and small tropical islands). While it is doing this, it checks for any weird generation patterns created by the first pass, and regenerates tiles in question.

For the first pass, to be more specific, the way it determines what types of tiles to place are by the tiles to it's west, northwest, north, and northeast. It takes these 4 tiles and runs basically an average on them (gradualism plays into this a little, but not much) and the resulting average is then passed through a series of tests. If the map happens to be of high density or low gradualism (or both), it's less likely that the average number will be used as compared to other sets of alternatives using chained checking statements.

This will all make total sense once I'm allowed to release the source Razz
That makes a fair bit of sense already. In fact, if you did a few iterations through Pass 1 instead of only a single pass, it would be a classic numerical laplacian smoother.
Today is it Sad
... And now, yesterday was it Smile I submitted my last version to the contest last night, but they got it corrupted. Juju, fortunately, realized that the other two entries were small BASIC programs (one of which being "Very Easy Game", which pissed me off since a lot of people will vote for it as a joke when me and the other contestant actually put TI e into ours :/ ) and gave me a 10 hour extension to submit it non-corrupted. It was successful, and now I'm included in the poll :3

Please look at at, and if you think this [highly incomplete] version is worth of winning the prize, I would appreciate your votes (I spent dozens of hours on it; it may not show, but I basically learned C while making it):
Can you paste us some screenshots, please? Many of us are banned from and/or unwilling to visit the target site, no offense. Smile
If you don't go there, how are you supposed to support your favorite flying fox? Evil or Very Mad More seriously, I get it Wink I haven't figured out a good way to take screenshots (and the one I got a while ago was from an early stage) so for now, you can get it from MF:

Hope you like it! It's really only 20% done, but it includes enough to make it cool. So, knock youself out with it; though, the prizm's weird smell will probably incapacitate you anyways so... Very Happy
I have to be honest, from the moment I got it, my Prizm has never had any sort of smell whatsoever, so I was spared these odd headaches. The images look great; would it be fair to say that thus far you have the map generation and scrolling done, but not much of the gameplay mechanics?
KermMartian wrote:
I have to be honest, from the moment I got it, my Prizm has never had any sort of smell whatsoever, so I was spared these odd headaches. The images look great; would it be fair to say that thus far you have the map generation and scrolling done, but not much of the gameplay mechanics?

Perfectly fair to say that. I ran out of time because I was assigned three major assignments, all from different AP classes, just before the deadline. If that hadn't have happened, zoning, road networking, utilities, population seeding, and more would be finished Sad. However one of the judges just told me privately they still thought it was cool, so I still have a decent chance of winning I'm sure.

And, my Prizm has a rather strong smell, which I can't really describe Razz I just refer to it as "The Scent of C Development", and whenever I code in C now, my brain associates C -> Smell, so I feel it wafting up my nostrils even when the calc isn't there Laughing
I'm sure the final version will also be excellent, and I hope you won't slack on it. Too many calculator projects from various sites don't reach completion anymore, I feel. Smile
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum